struts接收参数方式

第一种,直接用action的属性接收,是初学者常用的方法。

 1 package com.starain.user;
 2 public class User{
 3     private String username;
 4     private String password;
 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     public String execute(){
18         return "success";
19     }
20 
21 }

表单中直接提交和set,get同名的参数即可

第二种,DomainModel(或DTO)方式接收

 1 package com.starain.action;
 2 
 3 import com.starain.user.*;
 4 public class LoginAction{
 5     private User user;//struts2会自己new
 6     public String running(){
 7         if (user.getUsername().equals("admin")&&user.getPassword().equals("admin")) {
 8             return "success";
 9         }
10         return "error";
11     }
12     public User getUser(){
13         return user;
14     }
15     public void setUser(User user){
16         this.user = user;
17     }
18     
19 }

对应的表单提交参数为:对象实例.参数(get,set同名参数)

第三种,DrivenModel方式接收

 1 package com.starain.action;
 2 import com.opensymphony.xwork2.ActionSupport;
 3 import com.opensymphony.xwork2.ModelDriven;
 4 import com.starain.user.*;
 5 public class LoginAction extends ActionSupport implements ModelDriven<User>{//实现ModelDriven接口,用泛型,否则需要强制类型转换
 6     private User user = new User();//用ModelDriven的方式struts2不会自己new了,需要手动new
 7     public String running(){
 8         if (user.getUsername().equals("admin")&&user.getPassword().equals("admin")) {
 9             return "success";
10         }
11         return "error";
12     }
13     public User getUser(){
14         return user;
15     }
16     public void setUser(User user){
17         this.user = user;
18     }
19     
20     //这个必须有
21     public User getModel() {
22         // TODO Auto-generated method stub
23         return user;
24     }
25 }

表单提交的参数直接和action中get,set同名参数即可

 一般有以下五种

1.  用Action 的属性接收参数

2. 使用Domain ModelModel接收参数

3. 使用DTO--DTO--数据传输对象接收参数

4. 使用 ModelDriven接收参数

5. 使用request 对象接收参数

原文地址:https://www.cnblogs.com/starainDou/p/4749889.html