以用户名注册为例分析三种Action获取数据的方式
1.注入属性
直接注入属性:
publicStringuserName; publicStringgetUserName(){ returnuserName; } publicvoidsetUserName(StringuserName){ this.userName=userName; } @Override publicStringexecute()throwsException{ //TODOAuto-generatedmethodstub Useruser=newUser(); user.setUserName(userName);//在这里需要将username接收到并且去使用。 UserDAOdao=newUserDAO(); HttpServletResponseresponse=ServletActionContext.getResponse(); PrintWriterout=response.getWriter(); if(dao.checkExists(user)) { out.print(""); } else { out.print(""); } returnnull; }
2.DomainModel这是一般常用的方式
这里就不重复说明,
3.ModelDriven
第三种方法不常用,只需要了解;
其过程分为4个步骤:
(1)action实现ModelDriven<User>接口
(2)添加抽象方法
(3)定义并初始化一个模型
Useruser=newUser();
(4)生成setter和getter
publicclassCheckUserActionextendsActionSupportimplementsModelDriven<User>{ privateUseruser=newUser(); publicUsergetUser(){ returnuser; } publicvoidsetUser(Useruser){ this.user=user; } @Override publicStringexecute()throwsException{ //TODOAuto-generatedmethodstub UserDAOdao=newUserDAO(); HttpServletResponseresponse=ServletActionContext.getResponse(); PrintWriterout=response.getWriter(); if(dao.checkExists(user)) { out.print(""); } else { out.print(""); } returnnull; } @Override publicUsergetModel(){ //TODOAuto-generatedmethodstub returnuser; }
注意:在使用方法1和3的时候前端及jsp代码部分无需需改,因为是直接调用的userName属性。
方法2需要将jquery中的username变为,user.username。