JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是
Hibernate Validator。
此实现与 Hibernate ORM 没有任何关系。JSR 303 用于对 Java Bean 中的字段的值
进行验证。
Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地
验证。
JSR 303 内置的约束规则:
@AssertTrue / @AssertFalse
@DecimalMax / @DecimalMin
@Digits
@Future / @Past
—————————————————————————————
@Max / @Min
@NotNull / @Null
@Pattern
@Size
@Valid
使用 Spring MVC 和 JSR-303 的标注做表单提交的服务器端验证时,需校验的表单/命令对象和其绑定结果对象或错误对象时成对出现的,它们之间不允许声明其他的入
参: @Valid 标注的 Command 对象和 BindingResult 参数一定要紧挨着。要不然 数据
绑定错误直接抛异常,不会封装成一个 BindingResult 对象。
Errors 接口提供了获取错误信息的方法,如 getErrorCount() 或 getFieldErrors(String
field)
BindingResult 扩展了 Errors 接口,代码如下:
@RequestMapping("/testJSR303")
public String testJSR303(@Valid User user5, Errors errors){
//打印错误消息的数量
System.out.println(errors.getErrorCount());
//遍历错误消息
if(errors.getErrorCount() > 0){
List<FieldError> fieldErrors = errors.getFieldErrors();
for(FieldError error: fieldErrors){
System.out.println(error.getDefaultMessage());
}
}
return "success";
}
原文:http://blog.csdn.net/github_20066005/article/details/44564567