Struts2接收参数的几种方式

来源:互联网 发布:大众09g变速箱电脑编程 编辑:程序博客网 时间:2024/05/20 11:47


1.使用Action的属性:
在action类中定义要接收的参数,并提供相应的setter和getter方法,
注意action类中的属性名要和参数的名称一致,并且不用做数据类型的转换,如下:

-------jsp表单提交页面--------------------------
<form action="login" method="post" name="form1">
  用户名:<s:textfield name="username"/><br/>
   密 码:<s:password name="password"/><br/>
               <s:submit value="提交"/>
 </form>

------action业务控制器 -------------------------
public class TestAction extends ActionSupport{ 
     private String username;
     private String password;
 
     public String getUsername() {
      return username;
     }
     public void setUsername(String username) {
      this.username = username;
     }
     public String getPassword() {
      return password;
     }
     public void setPassword(String password) {
      this.password = password;
     }
 }
2.使用DomainModel(动态模型)
在action里面不用配置很多的属性,而是使用model层的一个对象
-------jsp表单提交页面-----------------------------
<form action="login" method="post" name="form1">
  用户名:<s:textfield name="users.username"/><br/>
   密 码:<s:password name="users.password"/><br/>
               <s:submit value="提交"/>
   </form>
---------model模型--实体类-------------------------
public class Users{
 private String username;
 private String password;
 
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
}
---------Action类业务控制器------------------------
public class TestAction extends ActionSupport{
//错误的写法,不能自己实例化,struts会自动实例化 private Users users = new Users();
private Users users;

public Users getUsers(){

return users;

}

public void setUsers(Users users){

this.users=users;

}

3.使用DTO--数据传输对象
它的作用是接收参数,传递参数,并不是项目中的实体类。如用户注册时,会用到确认密码,所以要先把参数接收过
来,做处理后,再传递给相应方法去创建User 对象。提交参数的方式与Domain Model 的方式相同。
-----创建数据传输对象DTO--------------------------------
public class UserDTO { 
 2     private String name; 
 3     private String password; 
 4     private String confirm; 
 5  
 6     public String getName() { 
 7         return name; 
 8     } 
 9     public void setName(String name) { 
10         this.name = name; 
11     } 
12     public String getPassword() { 
13         return password; 
14     } 
15     public void setPassword(String password) { 
16         this.password = password; 
17     } 
18     public String getConfirm() { 
19         return confirm; 
20     } 
21     public void setConfirm(String confirm) { 
22         this.confirm = confirm; 
23     } 
24 }
----------------action业务控制器---------------------------------
 1     public class TestAction extends ActionSupport{ 
 2         private static final long serialVersionUID = -7463970150000893325L; 
 3        
           private UserDTO userDTO; 
 4      
 5         public UserDTO getUserDTO() { 
 6             return userDTO; 
 7         } 
 8         public void setUserDTO(UserDTO userDTO) { 
 9             this.userDTO = userDTO; 
10         } 
11         public void execeute() { 
12             System.out.println("姓名: " + userDTO.getName()); 
13         } 
14     }
--------------------------------------------------------------------
4.使用ModelDriven:(模型驱动)
在创建Action 的时候,Action 实现了ModelDriven 接口,去调用接口的getModel()方法,取到了相关对象。
相应提交方式可以用get 和post。
--------jsp----------------------------------------
 <form action="login" method="post" name="form1">
  用户名:<s:textfield name="username"/><br/>
   密 码:<s:password name="password"/><br/>
               <s:submit value="提交"/>
 </form>
--------------action业务控制器-----------------------------
public class sysAction extends ActionSupport implements ModelDriven<User>{    
    private User user = new User();  //手动实例化  
     
    public User getModel() {       
        return user;  //返回实例  
    }    
}
5.使用request对象:
此方法与与传统的JSP 等传接参数一样,即使用request. getParameter(“”)方法
public class TestAction extends ActionSupport{ 
     private static final long serialVersionUID = -7463970150000893325L; 
  
     public void execeute() { 
         String name = ServletActionContext.getRequest().getParameter("paraName"); 
         System.out.println("姓名:" + name); 
     } 
 }

0 0
原创粉丝点击