首页 > 代码库 > struts 模型驱动
struts 模型驱动
情景: 有一个用来处理用户的UserAction 类, 该动作类实现了 ModelDriven 接口. 当用户触发UserAction 动作时, ModelDriven 拦截器将调用相关UserAction 对象的 getModel() 方法, 并把返回的模型(User实例)压入到 ValueStack 栈. 接下来 Parameters 拦截器将把表单字段映射到 ValueStack 栈的栈顶对象的各个属性中. 因为此时 ValueStack 栈的栈顶元素是刚被压入的模型对象, 所以该模型将被填充. 如果某个字段在模型里没有匹配的属性, Param 拦截器将尝试 ValueStack 栈中的下一个对象.
一个模型类必须有一个不带任何参数的构造器.
写法 例子:
前端代码
1 <form action="${pageContext.request.contextPath }/user_add" name="form_"> 2 用户名:<input type="text" name="user.userName" /> <br> 3 密码:<input type="text" name="user.pwd" /><br/> 4 <input type="submit" value="提交"> 5 </form>
后台代码
1 //----------------user----------实体类------------------ 2 package test.a_usertest; 3 public class User { 4 private String userName; 5 private String pwd; 6 public String getUserName() { 7 return userName; 8 } 9 public void setUserName(String userName) { 10 this.userName = userName; 11 } 12 public String getPwd() { 13 return pwd; 14 } 15 public void setPwd(String pwd) { 16 this.pwd = pwd; 17 } 18 } 19 //--------action--------------------------------- 20 package test.a_usertest; 21 22 import java.util.ArrayList; 23 import java.util.List; 24 25 import com.opensymphony.xwork2.ActionSupport; 26 import com.opensymphony.xwork2.ModelDriven; 27 28 public class UserAction extends ActionSupport implements ModelDriven<User>{ 29 30 private User user = new User(); 31 public User getUser() { 32 return user; 33 } 34 public void setUser(User user) { 35 this.user = user; 36 } 37 public User getModel() { 38 return this.user; 39 } 40 public String add(){ 41 List<Object> list = new ArrayList<Object>(); 42 list.add(user);//打个断点在这里可以发现,此时user.userName 、user.pwd的值为前端传过来的值,也就是页面中的this.user对象自动被封装了 43 return SUCCESS; 44 } 45 }
struts 模型驱动
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。