/*
* 示例代码:用户注册控制器
*/
@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方法,用于判断验证器是否支持特定类的对象以及执行实际的验证逻辑。
通过统一的表单验证机制,我们能够对用户提交的表单数据进行基本的必填项验证,确保数据的正确性,进而提高系统的稳定性和用户体验。