status2从取值的方式
来源:互联网 发布:mac下载器与win的idm 编辑:程序博客网 时间:2024/05/20 15:58
可以根据Action属性的不同将它分为两类:Field-Driven(属性驱动) Action和Model-Driven(模型驱动) Action。
一、Field-Driven(属性驱动)Action,Action拥有自己的属性,这些属性一般是Java的基本类型。表单字段直接和Action的属性 对应。
二、实现了modelDriven接口可以在action中直接获得例如User对象,它会将Object getModel()取得的User放到ValueStack中。可以理解为将这个User的属性追加到Action中。它主要是作用是实现类似Struts的FormBean功能。
在struts2中,提供了一种直接使用领域对象的方式,就是让action实现com.opensymphony.xwork2.ModelDriven接口,ModelDriven让你可以直接操作应用程序中的领域对象,允许你在web层和业务层使用相同的对象。
ModelDriven接口只有一个方法
public abstract java.lang.Object getModel();
该方法返回一个用于接收用户输入数据的对象模型,在这个模型对象中的属性可以直接通过(属性名)name来访问,而不需要使用(对象名.属性名)vo.name这种格式来访问了,在action也不需要对对象提供getter和setter方法了,但是必须要在action中进行实例化,获取参数方式:
1、使用默认的action的传递方式,即参数名和属性名一一对应。
2、自定义一个vo,在action中使用这个vo,view使用vo.属性名。3、使用ModelDriven的方式。
ModelDriven的方式:
public class UserVo {private String name;private String pwd;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}
import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;public abstract class BaseAction<T> extends ActionSupport implements ModelDriven<T>{}
import org.han.BaseAction;import org.han.vo.UserVo;public class LoginAction extends BaseAction<UserVo>{private UserVo vo=new UserVo();public UserVo getModel() {// TODO Auto-generated method stubreturn vo;}public String login(){System.out.println(vo.getName());return null;}}
<body> <form action="login!login.action" method="post"> <input type="text" name="name" /> <input type="text" name="pwd" /> <input type="submit" value="提交"/> </form> </body>
三种方法的总结:
第一种方法把form的值都放在action文件中,当form提交的项目很多的时候,action的内容将变得很多。项目少的时候可用。
第二种方法将form的值单独放在vo中,解决了action文件臃肿的问题,同时使form和action分开,较好。但是需要在设置和获取的jsp页面上进行标识。
第三种方法在第二种方法的基础上,通过实现特定的接口,去掉了action中的set和get方法,同时去掉了jsp页面上的标识。使后台程序的logic更加清晰。
- status2从取值的方式
- struts2从form取值的三种方式
- struts2从表单取值的三种方式
- struts2从form取值的三种方式
- struts2从请求取值的三种方式
- struts2中从页面取值的三种方式
- struts2中从页面取值的三种方式
- struts2中从页面取值的三种方式
- struts2从form取值的三种方式
- struts2从表单取值的三种方式
- struts2从form取值的三种方式
- struts2从form取值的三种方式
- structs的取值方式
- json的取值方式
- select的取值方式
- struts 3种从jsp页面 取值方式
- jquery的多种取值方式
- kindeditor控件的取值方式
- Tour de Flex经典例子(三)------SkinnableContainer(登陆界面)
- Qt:信号与槽的连接函数问题
- JavasSript只能输入数字和小数点
- 腾讯笔试题目
- wpa_supplicant
- status2从取值的方式
- Big Data系统架构
- 输入一棵二叉树,求该树的深度
- 面经
- lucene 分页
- HDU 4082 Hou Yi's secret
- org.tigris.subversion.javahl.ClientException Attempted to lock an already-locked dir异常解决方法
- visual studio 2008编译libnids的问题
- 基于分析的提示应用又一例(实现复杂的TopN)