现在的位置: 首页 > 综合 > 正文

struts2中接受参数的几种方式!!!

2017年11月09日 ⁄ 综合 ⁄ 共 2990字 ⁄ 字号 评论关闭

一、用Action属性

在action里定义要接收的参数,并提供相应的set和get方法。

如:

[java] view
plain
copy

  1. public class LoginAction extends ActionSupport {  
  2.     private String username;  
  3.     private String password;  
  4.       
  5.     //对应的get set方法  
  6.     public String getUsername() {  
  7.         return username;  
  8.     }  
  9.     public void setUsername(String username) {  
  10.         this.username = username;  
  11.     }  
  12.     public String getPassword() {  
  13.         return password;  
  14.     }  
  15.     public void setPassword(String password) {  
  16.         this.password = password;  
  17.     }  
  18.     public String execute() {  
  19.         // TODO Auto-generated method stub  
  20.         System.out.println("username = "+username);  
  21.         System.out.println("password = "+password);  
  22.         return SUCCESS;  
  23.     }  
  24. }  


[html] view
plain
copy

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


二、使用DomainModel

如果Action中属性过多,则可以Model保存为一个对象,并提供get和set

Model类

[java] view
plain
copy

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

 

Action类

[java] view
plain
copy

  1. public class LoginAction extends ActionSupport {  
  2.     private User user;  
  3.     public String execute() {  
  4.         // TODO Auto-generated method stub  
  5.         System.out.println("username = "+user.getUsername());  
  6.         System.out.println("password = "+user.getPassword());  
  7.         return SUCCESS;  
  8.     }  
  9.     public User getUser() {  
  10.         return user;  
  11.     }  
  12.     public void setUser(User user) {  
  13.         this.user = user;  
  14.     }  
  15. }  

 

JSP

[html] view
plain
copy

  1. <form action="login" method="post">  
  2.         用户名:<input type="text" name="user.username"><br/>  
  3.         密 码:<input type="password" name="user.password"><br/>  
  4.         <input type="submit" value="提交">  
  5.     </form>  


 

三、使用ModelDriven(模型驱动)

使用模型驱动模式时,Acton必须实现ModelDriven接口,实现该接口则必须实现getModel()方法,该方法用于把Action和与之对应的Model实例关联起来。

Model类同DomainModel

Action类

[java] view
plain
copy

  1. public class LoginAction extends ActionSupport implements ModelDriven<User> {  
  2.     private User user = new User();   //需实例化 
    ,一定要自己手动实例化
  3.     public String execute() {  
  4.         
  5.         return SUCCESS;  
  6.     }  
  7.     
  8.     }  
  9.     public User getModel() {  
  10.         // TODO Auto-generated method stub  
  11.         return user;  
  12.     }  
  13. }  

 

JSP

[html] view
plain
copy

  1. <form action="login" method="post">  
  2.         <!-- 属性可以为 对象.XXX 也可以直接为XXX  则前提Action中要自己实例化Model对象 -->  
  3.         用户名:<input type="text" name="user.username"><br/>  
  4.         密 码:<input type="password" name="password"><br/>  
  5.         <input type="submit" value="提交">  
  6.     </form>  


 

四、使用request接收参数

此方法和传统的JSP页面接收参数一样,用request.getParameter("")方法。

 

抱歉!评论已关闭.