以使用者名稱註冊來分析三種Action擷取資料的方式,三種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 @Override15 public String execute() throws Exception {16 // TODO Auto-generated method stub17 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 else28 {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 @Override12 public String execute() throws Exception {13 // TODO Auto-generated method stub14 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 else24 {25 out.print("0");26 }27 return null;28 }29 30 @Override31 public User getModel() {32 // TODO Auto-generated method stub33 return user;34 }35
注意:在使用方法1和3的時候前端及jsp代碼部分無需需改,因為是直接調用的userName屬性。
方法2需要將jquery中的username變為,user.username。