/* * 示例代码:用户注册控制器 */ @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping(value = "/register", method = RequestMethod.POST) public String register(@ModelAttribute("user") User user, BindingResult result) { // 表单验证 UserValidator validator = new UserValidator(); validator.validate(user, result); if (result.hasErrors()) { return "register"; // 返回注册页面 } // 保存用户信息 userService.save(user); return "redirect:/user/login"; // 注册成功后重定向至登录页面 } } /* * 用户注册表单验证器 */ public class UserValidator implements Validator { @Override public boolean supports(Class clazz) { return User.class.equals(clazz); } @Override public void validate(Object target, Errors errors) { ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "NotEmpty"); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "NotEmpty"); // 省略其他验证逻辑 } }
SpringMVC的数据绑定与表单验证在开发过程中起到了重要的作用。
在控制器中的方法中,通过使用@ModelAttribute
注解将表单提交的数据绑定到对应的实体类对象,并通过BindingResult
对象进行表单验证。
表单验证通过自定义的验证器类来实现,该验证器实现了Validator
接口的supports
和validate
方法,用于判断验证器是否支持特定类的对象以及执行实际的验证逻辑。
通过统一的表单验证机制,我们能够对用户提交的表单数据进行基本的必填项验证,确保数据的正确性,进而提高系统的稳定性和用户体验。