Struts2中表单与Action传递数据三种方式

今天在搭SSH框架的时候,想到Struts的表单封装,自己只知道有2种方式,结果在网上一查,还可以根据Struts自带的ModelDriven来获取表单数据。

顺便也做下总结:
1.Action中的属性与表单中的属性一致就可以

01.<!--JSP中的表单--> 
02.<form action="login.action" method="post"> 
03.    用户名:<input type="text" name="username"/>    <br/> 
04.    密码:  <input type="password" name="password" /> <br/> 
05.    <input type="submit" value="登陆" /> 
11.</form> 
Java代码
01.//Action中的属性                                                           
02.public class LoginAction extends ActionSupport {        
03.    private String username;       
04.    private String password;     
05.     
06.    public String getUsername() {     
07.       return username;     
08.    }     
09.    
10.    public void setUsername(String username) {     
11.       this.username = username;     
12.    }     
13.    
14.    public String getPassword() {     
15.       return password;     
16.    }     
17.    
18.    public void setPassword(String password) {     
19.       this.password = password;       
20.    }     
21.    
22.    public String execute(){     
23.       if( username.equalsIgnoreCase("aaa")&&password.equals("aaaaaa")){     
24.           return SUCCESS;     
25.       }else{     
26.           return ERROR;     
27.       }     
28.    }     
29.    
30.} 

  
2.使用一个VO类
XML/HTML代码
01.<!--在表单中提交的属性名改为user.username--> 
02.<form action="login.action" method="post"> 
03.       用户名:<input type="text" name="user.username"/>  <br/> 
04.       密码:  <input type="password" name="user.password" /> <br/> 
05.       <input type="submit" value="登陆" /> 
06.    </form> 


Java代码
01.//LoginAction中的属性改为user  
02.public class LoginAction extends ActionSupport{  
03.    private User user;  
04. 
05.    public User getUser() {  
06.       return user;  
07.    }  
08. 
09.    public void setUser(User user) {  
10.       this.user = user;  
11.    }  
12. 
13.    public String execute(){  
14.       if( user.getUsername().equalsIgnoreCase("aaa")&&user.getPassword().equals("aaaaaa")){  
15.           return SUCCESS;  
16.       }else{  
17.           return ERROR;  
18.       }  
19.    }  
20. 
21.} 


3.使用Struts2中的ModelDriven数据模式

Java代码
01.//Action类要实现一个泛型接口,前台表单与1相同  
02.public class LoginAction extends ActionSupport implements ModelDriven<User> {   
03.    private User user = new User();  
04. 
05.    public String execute(){  
06.       if( user.getUsername().equalsIgnoreCase("aaa")&&user.getPassword().equals("aaaaaa")){  
07.           return SUCCESS;  
08.       }else{  
09.           return ERROR;   
10.       }  
11. 
12.    }  
13. 
14.    public User getModel() {  
15.       return user;  
16.    }  
17. 
18.}

如果大家还有更好的方法,大家可以一起讨论!

猜你喜欢

转载自bearsea.iteye.com/blog/1066356