📄 registercontroller.java
字号:
package onlyfun.caterpillar.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import onlyfun.caterpillar.model.IUserDAO;
import onlyfun.caterpillar.model.User;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
//SimpleFormController是AbstractForm-Controller的子类,简单的表单可以
//直接继承这个类,并重新定义onSubmit()方法以处理用户的请求...
public class RegisterController extends SimpleFormController {
//IUserDAO的实例将使用Spring的依赖注入设置(这在web-config.xml中会有相关的设置)...
private IUserDAO UserDAO;
//直接取得了Command的实例,并在转换操作接口为RegisterForm之后,直接操作getXXX()方法来取得提交的参数...
//onSubmit()方法接收command对象,这个对象代表了表单对象...
public RegisterController(){
setCommandClass(RegisterForm.class);
}
//一旦用户提交了登录页面,应用程序可以从RegisterController的onSubmit()方法中的命名对象检索出表单数据...
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
Object command, BindException exception)throws Exception{
//在RegisterController中,将从RegisterForm中撷取相关信息,并设置至一个User实例中,
//接下来取得IUserDAO对象,以将User对象中的消息储存至数据库的user表格...
RegisterForm form=(RegisterForm)command;
//这里注意到RegisterForm是属性Web层所设计的API,虽然它当中就带有用户的注册消息,但不建议直接将Web层所设计的API
//侵入至业务层之中,而改用一个与Web层无关的User对象来封装用户注册消息...
User user=new User();
user.setEmail(form.getEmail());
user.setUsername(form.getUsername());
user.setPasswd(form.getPasswd());
//取得IUserDAO对象,将User对象中的消息储存至数据库的user表格/insert()方法就是IUserDAO接口中的自定义方法...
this.getUserDAO().insert(user);
//注册完成之后,在Session对象的属性中设置"valid_user",用户是否登录即是根据这个属性来进行判断的...
request.getSession().setAttribute("valid_user", user.getUsername());
//构造ModelAndView的第一个参数为要呈现的目标网页(或资源)路径,第二个参数是设置用来取得Model对象的键(key),第三个参数是给View层呈现数据的Model对象
//参数getSuccessView()与定义文件web-config.xml中的registerController实例中的"successView"属性相对应...
return new ModelAndView(this.getSuccessView());
}
public IUserDAO getUserDAO() {
return UserDAO;
}
public void setUserDAO(IUserDAO userDAO) {
UserDAO = userDAO;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -