struts2之ModelDriven
来源:互联网 发布:淘宝助理安卓手机版5.7 编辑:程序博客网 时间:2024/06/03 13:05
在Struts 2中,提供了另外一种直接使用领域对象的方式,就是让action实现com.opensymphony. xwork2.ModelDriven接口。ModelDriven让你可以直接操作应用程序中的领域对象(模型对象),允许你在Web层和业务逻辑层使用相同的对象。
ModelDriven接口中只有一个方法,如下:
- public T getModel()
该方法返回一个用于接收用户输入数据的模型对象。
在页面中,这个模型对象中的属性可以直接通过属性名来访问(如username),而不需要使用形如“user.username”这种格式的表达式,
在action中也不需要为这个模型对象提供JavaBean风格的getter和setter方法。但是必须要在action中进行new操作,ModelDriven要使用泛型哦
下面我们让在3.1节创建的LoginAction类实现ModelDriven接口,修改后的代码如例3-7所示。
例3-7 LoginAction.java
- package org.sunxin.struts2.ch03.action;
- import org.sunxin.struts2.ch03.model.User;
- import com.opensymphony.xwork2.Action;
- import com.opensymphony.xwork2.ModelDriven;
- public class LoginAction implements Action,ModelDriven<User>
- {
- private User user = new User();
- @Override
- public String execute() throws Exception
- {
- …
- //省略
- }
- @Override
- public User getModel()
- {
- return user;
- }
- }
修改login.jsp,修改后的代码如例3-8所示。
例3-8 login.jsp
- …
- <form action="login.action" method="post">
- <table>
- <tr>
- <td>用户名:</td>
- <td><input type="text" name="username"></td>
- </tr>
- <tr>
- <td>密码:</td>
- <td><input type="password" name="password"></td>
- </tr>
- <tr>
- <td><input type="reset" value="重填"></td>
- <td><input type="submit" value="登录"></td>
- </tr>
- </table>
- </form>
- …
LoginAction实现了ModelDriven接口,表单字段就不需要再使用 “user.”前缀了。
修改success.jsp,修改后的代码如例3-9所示。
例3-9 success.jsp
- …
- <body>
- <h3><s:property value="username" />,欢迎您登
- 录程序员之家网站(www.sunxin.org)。</h3>
- </body>
- …
那么什么时候应该直接使用领域对象,什么时候应该实现ModelDriven接口呢?
这两种方式实际上并没有本质的区别,对于大多数的应用,使用任何一种方式都可以。
0 0
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- struts2之ModelDriven
- OpenStack Liberty(第12个版本)
- 堆排序
- Mybatis系列之实战篇(中)
- qcom_vuforia环境搭建
- AFNetworking网络框架的基本使用
- struts2之ModelDriven
- putty字体大小颜色改变
- java关键字之break与continue的区别(简单明了的小例子)
- 重造轮子 用递归函数和栈操作逆序一个栈
- Java中子类是否可以继承父类的static变量和方法而呈现多态特性
- 最小生成树
- 数据结构相关的一些定义
- POJ 2585 Window Pains(拓扑排序)
- Insertion Sort源码