Spring MVC后台表单校验使用了JSR-303的Java Validation API。
主要涉及三个方面:
1. Form Bean的验证规则注解
2. Controller处理方法参数注解
3. 利用Spring tag展现错误信息
Form Bean的验证规则注解
public class Spitter {
private Long id;
@NotNull
@Size(min=5, max=16, message="{username.size}")
private String username;
@NotNull
@Size(min=5, max=25, message="{password.size}")
private String password;
@NotNull
@Size(min=2, max=30)
private String firstName;
@NotNull
@Size(min=2, max=30)
private String lastName;
@NotNull
@Email
private String email;
public Spitter() {}
......
为了配置错误提示信息,需要在根类路径下面创建名为ValidationMessages.properties的文件。
username.size = Username must be between {min} and {max} characters long.
Controller处理方法参数注解
@RequestMapping(value="/register", method=POST)
public String processRegistration(
@Valid Spitter spitter,
Errors errors) {
if (errors.hasErrors()) {
return "registerForm";
}
spitterRepository.save(spitter);
return "redirect:/spitter/" + spitter.getUsername();
}
@Valid注解声明要验证的参数,Errors对象必须跟在该注解后面。
当验证不通过时,Controller携带错误信息返回原Form页面。
利用Spring tag展现错误信息
表单展现错误的Spring tag是
<sf:errors path="username">
也可以在表单头部将错误集中展现出来
<sf:errors path="*" element="div" cssClass="errors">