Struts2之ModelDriven用法
来源:互联网 发布:如何导出股票数据 编辑:程序博客网 时间:2024/06/06 11:37
我们在使用Struts2时,服务器端接收客户端数据方式有很多种,我们推荐使用Action类实现ModelDriven接口的方式,因为它有很多便利之处!
我们可以根据Action属性的不同将它分为两类:Field-Driven(属性驱动)和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让你可以直接操作应用程序中的领域对象,允许你在视图层和业务层使用相同的对象。
ModelDriven接口只有一个方法 :
public Object getModel(){return null;
}
该方法返回一个用于接收用户输入数据的对象模型,在这个模型对象中的属性可以直接通过(属性名)username来访问,而不需要使用(对象名.属性名)user.username这种格式来访问了,在action也不需要对对象提供getter和setter方法了,但是必须要在action中对模型实例化(new)。
视图层代码:
1、上传表单数据(请求)
<form action="LoginAction.action" method="post"> 用户名:<input type="text" name="username"> 密 码:<input type="password" name="password"> <br> 爱好1:<input type="text" name="hobbyList[0]"> 爱好2:<input type="text" name="hobbyList[1]"> <br> <input type="submit" value="登录"> </form>
2、数据处理后输出(响应)
<body> <h2>登陆成功!</h2> <hr> <h4>欢迎您${user.username}!</h4><br> <h4>您的爱好是1、${user.hobbyList[0]}2、${user.hobbyList[1]}</h4> </body>
Model代码:
public class User {private String username;private String password;private List<String> hobbyList;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public List<String> getHobbyList() {return hobbyList;}public void setHobbyList(List<String> hobbyList) {this.hobbyList = hobbyList;}}Action代码:(处理数据)
public class LoginAction extends ActionSupport implements ModelDriven<User>{/** * */private static final long serialVersionUID = 1L;//此处必须实例化private User user = new User();public String login(){//调用ServletActionContext的方法获得servlet APIHttpServletRequest request = ServletActionContext.getRequest();request.setAttribute("user", user);System.out.println("调用action!" + "\n参数传递:姓名:" + user.getUsername() + "爱好:" + user.getHobbyList().get(0) + user.getHobbyList().get(1));return SUCCESS;}//实现接口中的方法,返回在开始处实例化的Model对象public User getModel() {// TODO Auto-generated method stubreturn user;}}
1 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
- WebPack Loader
- Ios9下访问http:// 安全认证
- ubuntu下安装boost环境
- 如何知道ng-repeat循环的dom已经渲染完成
- Linux TCP队列相关参数的总结
- Struts2之ModelDriven用法
- JavaScript “跑马灯”抽奖活动代码解析与优化(二)
- vc编译,丢失mspdb100.DLL解决方法
- Source not found-Android 使用隐藏API(2)
- 【精】色彩三刀流!为新手量身打造的UI界面配色方法
- R语言-AHP层次分析法
- Redis java操作
- 并查集入门简略笔记 附HDU1232
- TreeSet集合介绍