4.创建一个Java类文件Registration.java,其中包含注册应用程序的业务逻辑。在这里,此文件包含8个私有变量,它们分别具有getter和setter方法,用于存储注册细节。
Registration.java
public class Registration { private String username; private String password; private String fname; private String lname; private String gender; private String country; private String addr; private String cb; public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getCb() { return cb; } public void setCb(String cb) { this.cb = cb; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Registration() { } public String getFname() { return fname; } public void setFname(String fname) { this.fname = fname; } public String getLname() { return lname; } public void setLname(String lname) { this.lname = lname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
5.创建一个RegistrationFormController.java文件,该文件扩展了SimpleFormController以控制用户请求并返回相应的ModelAndView对象。
RegistrationFormController.java
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; public class RegistrationFormController extends SimpleFormController { @Override protected ModelAndView onSubmit(Object command) throws Exception { Registration reg=(Registration)command; String uname=reg.getUsername(); String fname=reg.getFname(); String lname=reg.getLname(); String gender=reg.getGender(); String country=reg.getCountry(); String cb=reg.getCb(); String addr=reg.getAddr(); ModelAndView mv = new ModelAndView(getSuccessView()); mv.addObject("uname",uname); mv.addObject("fname",fname); mv.addObject("lname",lname); mv.addObject("gender",gender); mv.addObject("country",country); mv.addObject("cb",cb); mv.addObject("addr",addr); return mv; } }
6,创建一个registrationValidator.java文件来验证诸如用户名和密码之类的表单字段不能为空.DispatcherServlet负责赋予属性以将Validator添加到用户请求并执行验证。
registrationValidator.java
import org.springframework.validation.Errors; import org.springframework.validation.Validator; public class registrationValidator implements Validator { public boolean supports(Class cl) { return Registration.class.isAssignableFrom(cl); } public void validate(Object ob, Errors errors) { Registration reg=(Registration)ob; if (reg.getUsername() == null || reg.getUsername().length() == 0) { errors.rejectValue("username", "error.empty.username"); } else if (reg.getPassword() == null || reg.getPassword().length() == 0) { errors.rejectValue("password", "error.empty.password"); } } }
7,创建或修改 messages.properties 文件,其中包含各自键值的消息,在此文件中,我们为两个键值编写消息,分别为空用户名和空密码。
messages.properties error.empty.username=Please Enter User name error.empty.password=Please Enter Password
8,构建并运行应用程序
输出
访问页面:http://localhost:8080/Registration/index.html
清空密码时,使用spring错误标签显示相应的错误消息。
只有在正确验证用户名和密码后,我们才能提交表单。
显示输出,其中包含所有提交注册的值
原文使用的较早的Spring版本(<3),更新后的源码放在 https://github.com/yujiaao/sp... 供参考。