1. 属性驱动
一般在初学struts2时,都是从属性驱动开始的。
属性驱动是指在Action类里,包含表单里对应的字段(字段名一致)和对应的setter、getter。
表单:
username: <input type="text" name="username" /><br/> password: <input type="text" name="password" /><br/>
对应的Action:LoginAction:
private String username; private String password; // getter、setter public String execute() { // dosomething(); }
Action页面则可以通过${username}来访问username属性。
属性驱动对于表单域比较少的传值还好,如果表单域较多,那Action类就会包含大量的属性和getter/setter方法,就会显得臃肿。
2. 对象驱动
好象没有比较正式的名称,暂且叫对象驱动吧。
Action类里包含一个对象和getter、setter,此对象的属性与表单的域一一对应:
private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String execute() throws Exception { // dosomething(); }表单代码:
username: <input type="text" name="user.username" /><br/> password: <input type="text" name="user.password" /><br/>
表单域的name由对象名和属性名组成,中间用.连接,Action对象被创建后,通过setter进行赋值。Action result页面则通过${user.username}来访问。
3. 模型驱动
模型驱动是通过实现ModelDriven<T>的getModel()接口来传值的。
Action对象里包含一个带有getter\setter的对象,和一个getModel()方法,返回类型即是表单对应的类,返回类型即是创建的对象。
public class Login3Action implements ModelDriven<User> { private User user = new User(); public User getUser() { return user; } public void setUser(User user) { this.user = user; } public User getModel() { return user; } public String execute() { // ... } }
表单html代码与属性驱动一样,result返回页取对象的值通过类似于${user.username}来实现。
4. 对象驱动与模型驱动的比较
在大部分情况下,使用对象驱动或模型驱动,因为能达到dto的复用,且Action类的代码也看起来比较整洁。
对象驱动优点: 无需在Action类里创建对象,支持一个表单含有多个对象的属性。
缺点: 表单域的name变长了
模型驱动优点: 使表单看起来整洁
缺点: 不支持一个Action类里多个模型驱动传值。
相关推荐
struts2前后台传值交互的理解
struts2配置文件传值中文乱码
ajax请求传值Struts2(版本2.3.24.1)+jsp
struts2 超级链接中传递中文到Action,不能正常传递,经过两次转换,顺利实现对中文文档的读取。
Struts demo2
struts2使用域模型传值,如何在struts2中使用与模型传值
Struts2Demo2
struts2 ,struts2 demo,源代码示例
传值问题 在其中取值的方法有两种: #+映射名, 直接写映射名。 1.不加#的方式获取(所有对象放置在栈顶): a.XXaction中有该字段的成员变量. b.XXaction中该对象返回个给实现对象ModelDriven的泛型, 即action中下面...
自己动手做的Struts2小demo,开启SSH之路,你也动手开始吧
这是一个struts2框架的处理流程的demo,里面有struts2基本的配置和模拟登录的例子,以及struts2前台后后台的数据交互方式的解释,代码中有完整的注释帮助理解struts2的基本流程,同时对jstl和struts2的标签也有一定...
Struts示例demo
搭建一个简单的struts2开发环境 开发Struts2应用最少需要的JAR: a. struts2-core-2.x.x.jar : Struts2 框架的核心类库 b. xwork-core-2.x.x.jar: XWork类库,Struts2在其上构建 c. ognl-2.6.x.jar: 对象图导航...
改struts2入门案例是我本人自己写的入门小案例,可以使用。适合刚接触或者准备学习struts2的同事拿来看看
struts2 sping3 mybatis框架样例DEMO
该例子为struts2注解与拦截器demo,利用myEclipse8.5开发,导入刚才后,自动加载所需struts2的jar包,可以直接运行,是初学struts2注解、拦截器很好的例子,保证10分钟学会2种技术,愿意分享给大家。
一个简单的Struts2登录DEMO,供大家参考,相互学习学习
Struts2入门demo 希望对初学者有用!!!