以用户名注册来分析三种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。