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對象放入到了棧頂



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章