以用户名注册来分析三种Action获取数据的方式

1.注入属性


直接注入属性:

 1     public String userName;
 2     
 3 
 4     public String getUserName() {
 5         return userName;
 6     }
 7 
 8 
 9     public void setUserName(String userName) {
10         this.userName = userName;
11     }
12 
13 
14     @Override
15     public String execute() throws Exception {
16         // TODO Auto-generated method stub
17         
18         User user = new User();
19         user.setUserName(userName);//在这里需要将username接收到并且去使用。
20         UserDAO dao = new UserDAO();
21         HttpServletResponse response= ServletActionContext.getResponse();
22         PrintWriter out = response.getWriter();
23         if(dao.checkExists(user))
24         {
25             out.print("1");
26         }
27         else
28         {
29             out.print("0");
30         }
31         return null;
32     }


2.Domain Model 这是一般常用的方式

这里就不重复说明,

3.ModelDriven

第三种方法不常用,只需要了解;

其过程分为4个步骤:
 (1)action实现ModelDriven<User>接口
  (2) 添加抽象方法
 (3)定义并初始化一个模型
     User user=new User();
 (4)生成setter和getter

 1 public class CheckUserAction extends ActionSupport implements ModelDriven<User>{
 2     private User user = new User();
 3     public User getUser() {
 4         return user;
 5     }
 6 
 7     public void setUser(User user) {
 8         this.user = user;
 9     }
10 
11     @Override
12     public String execute() throws Exception {
13         // TODO Auto-generated method stub
14         
15         
16         UserDAO dao = new UserDAO();
17         HttpServletResponse response= ServletActionContext.getResponse();
18         PrintWriter out = response.getWriter();
19         if(dao.checkExists(user))
20         {
21             out.print("1");
22         }
23         else
24         {
25             out.print("0");
26         }
27         return null;
28     }
29 
30     @Override
31     public User getModel() {
32         // TODO Auto-generated method stub
33         return user;
34     }
35     

注意:在使用方法1和3的时候前端及jsp代码部分无需需改,因为是直接调用的userName属性。

方法2需要将jquery中的username变为,user.username。

原文地址:https://www.cnblogs.com/xiadongqing/p/5245166.html