Struts2页面到action的几种传值方式

struts2中的Action接收表单传递过来的参数有几种方法:

传统的做法如,登陆表单login.jsp:

  • <form action="login" method="post" name="form1">  
  •   用户名:<s:textfield name="username"/><br/>  
  •    密 码:<s:password name="password"/><br/>  
  •                <s:submit value="提交"/>   
  •    </form> 

 

 

 

 

 

 

1.在Action类中定义表单属性,两者属性名称必须一致。提供setter,getter方法。即可接收到表单传过来的参数.

 

这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action类中充斥着setter,getter方法,程序结构不是很美观。

 

2.把表单传递过来的参数封装成一个类,然后调用其中的属性.

 

如,把login.jsp页面要传来的参数进行封装

  1. private String username;  
  2.  private String password;  
  3.    
  4.  public String getUsername() {  
  5.   return username;  
  6.  }  
  7.  public void setUsername(String username) {  
  8.   this.username = username;  
  9.  }  
  10.  public String getPassword() {  
  11.   return password;  
  12.  }  
  13.  public void setPassword(String password) {  
  14.   this.password = password;  
  15.  }

 

 

 

 

 

 

 

 

 

 

然后再Action方法中,定义该类的对象就可以了,如

  1. public class loginAction extends ActionSupport{  
  2. private Users users;  
  3. public Users getUsers(){  
  4. return users;  
  5. }  
  6. public void setUsers(Users users){  
  7. this.users=users;  
  8. }  
  9. /* 
  10. 传递过来的参数都封装在users中了,用getter方法取值就可以了 
  11. */  

 

 

 

 

 

 

 

 

通过这种方法传值,还必须在jsp页面做一下处理,login.jsp中from1的属性名应该改成这样:

 

登陆表单login.jsp:

  1. <form action="login" method="post" name="form1">  
  2.   用户名:<s:textfield name="users.username"/><br/>  
  3.    密 码:<s:password name="users.password"/><br/>  
  4.                <s:submit value="提交"/>   
  5.    </form>  

 

 

 

posted @ 2013-05-05 22:18  明明小k  阅读(393)  评论(0编辑  收藏  举报