struts2接收参数的几种形式

来源:互联网 发布:河北邮币卡交易软件 编辑:程序博客网 时间:2024/05/09 16:59

1. 用Action的属性:
在action 里面定义要接收的参数,并提供相应的setter,getter,和提交参数的名称一致,并不用做数据类型的转换。
相应提交方式可以用get 和post,如:testAction? name=admin
如:

View Code
     public class TestAction extends ActionSupport{ 
         private static final long serialVersionUID = -7463970150000893325L; 
         private String name; 
      
         public void execeute() { 
             System.out.println(name + " : " + name); 
         } 
      
         public String getName() { 
             return name; 
         } 
      
         public void setName(String name) { 
             this.name = name; 
         } 
     }

2. 使用DomainModel:
在Action 里面不用很多的属性,而是用Model 层用到的模型,保存它的一个对象。相应提交方式可以用get 和post,
如:testAction? resBananRc.name=admin
如:

View Code
     public class TestAction extends ActionSupport{ 
         private static final long serialVersionUID = -7463970150000893325L; 
         private ResBananRc resBananRc; 
      
         public ResBananRc getResBananRc() { 
             return resBananRc; 
         } 
      
         public void setResBananRc(ResBananRc resBananRc) { 
             this.resBananRc = resBananRc; 
         } 
      
         public void execeute() { 
             System.out.println("姓名: " + resBananRc.getName()); 
         } 
     }

3. 使用DTO--数据传输对象
它的作用是接收参数,传递参数,并不是项目中的实体类。如用户注册时,会用到确认密码,所以要先把参数接收过
来,做处理后,再传递给相应方法去创建User 对象。提交参数的方式的Domain Model 方式的相同。
DTO:

View Code
 public class UserDTO { 
     private String name; 
     private String password; 
     private String confirm; 
  
     public String getName() { 
         return name; 
     } 
     public void setName(String name) { 
         this.name = name; 
     } 
     public String getPassword() { 
         return password; 
     } 
     public void setPassword(String password) { 
         this.password = password; 
     } 
     public String getConfirm() { 
         return confirm; 
     } 
     public void setConfirm(String confirm) { 
         this.confirm = confirm; 
     } 
 }

View Code
     public class TestAction extends ActionSupport{ 
         private static final long serialVersionUID = -7463970150000893325L; 
         private UserDTO userDTO; 
      
         public UserDTO getUserDTO() { 
             return userDTO; 
         } 
         public void setUserDTO(UserDTO userDTO) { 
             this.userDTO = userDTO; 
         } 
         public void execeute() { 
             System.out.println("姓名: " + userDTO.getName()); 
         } 
     }

4.使用ModelDriven:
在创建Action 的时候,Action 实现了ModelDriven 接口,去调用接口的getModel()方法,取到了相关对象。
相应提交方式可以用get 和post,如:testAction? name=admin

View Code
     public class TestAction extends ActionSupport implements ModelDriven<ResBananRc> { 
         private static final long serialVersionUID = -7463970150000893325L; 
         private ResBananRc resBananRc = new ResBananRc();// 这里要手动的New下 
      
         public ResBananRc getModel() { 
             return resBananRc; 
         } 
         public void execeute() { 
             System.out.println("姓名:" + resBananRc.getName()); 
         } 
     }

5.使用request对象:
此方法与与传统的JSP 等传接参数一样,即使用request. getParameter(“”)方法

View Code
 public class TestAction extends ActionSupport{ 
     private static final long serialVersionUID = -7463970150000893325L; 
  
     public void execeute() { 
         String name = super.getRequest().getParameter("paraName"); 
         System.out.println("姓名:" + name); 
     } 
 }

原创粉丝点击