struts2的两种驱动方式

在struts2中,前台与action传送数据有两种方式,分别是属性驱动和模型驱动。

1.属性驱动

1、在action中声明属性,属性的名称和页面元素中name属性的值保持一致。
2、action中的属性必须有set和get方法
  1. package test;  
  2.   
  3. public class DriverAction2{  
  4.     private User user;  
  5.       
  6.     public String execute(){  
  7.         return "success";  
  8.     }  
  9.   
  10.     public User getUser() {  
  11.         return user;  
  12.     }  
  13.   
  14.     public void setUser(User user) {  
  15.         this.user = user;  
  16.     }  
  17. }  
jsp页面中form表单
  1. <form action="login.action" method="post">  
  2.    姓名 <input type="text" name="user.username"><br/>  
  3.    密码 <input type="text" name="user.password"><br/>  
  4.    年龄 <input type="text" name="user.age"><br/>  
  5.     <input type="submit" value="submit">  
  6.     </form>  

2.模型驱动

1、action实现一个接口ModelDriver

 2、在action中声明一个属性,该属性会封装页面中的数据,并且用new的方法

给该属性创建对象
填充接口中的方法getModel,返回该属性的值


[html]  view plain  copy
  1. package test;  
  2.   
  3. import com.opensymphony.xwork2.ModelDriven;  
  4.   
  5. public class ModelAction implements ModelDriven<User>{  
  6. //直接实例化对象  
  7.     private User user=new User();  
  8. public String execute(){  
  9.     return "success";  
  10. }  
  11.     @Override  
  12.     public User getModel() {  
  13.         // TODO Auto-generated method stub  
  14.         return user;  
  15.     }  
  16.   
  17. }  



从上图可以看出,ModelDriverInterceptor有两个作用:

1、  当前请求的action必须实现ModelDriver接口

2、  把model对象放入到了栈顶



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值