提供验证所需包
另外有一点不要用错包了
这个validation的包在验证的时候是用不到的,反而是hibernate这个包才是用的到的。我也是被这个误导一直导入的javax.validation的包导致一直验证不到。
这样才是可以的。
另外值得注意的一点是
验证的实体类要用@valid修饰,并且后面跟着的参数必须是BindingResult类型才行。验证方法bingdingResult.hasErros(),有问题会返回true,没问题返回false。
可以直接在页面输出错误信息:
测试结果如下:
要提一点回页面这里不能用重定向不然错误信息会丢失。
最后列举举一些约束:
约束 | 说明 |
---|---|
@Null | 被注释的元素必须为空 |
@NotNull | 被注释的元素不能为空 |
@AssertTrue | 被注释的元素必须为true |
@AssertFase | 被注释的元素必须为false |
@Min(Value) | 被注释的元素必须是一个数字,其必须大于等于指定的最小值 |
@Max(Value) | 被注释的元素必须是一个数字,其必须小于等于指定的最大值 |
@DecimalMin(Value) | 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 |
@DecimalMax(Value) | 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 |
@Size(MAX,MIN) | 被注释的元素必须在指定的范围内 |
@Digits(integer,fraction) | 被注释的数必须是一个数字,其值必须在可接受范围内 |
@Past | 被注释的元素必须是一个过去的日期 |
@Future | 被注释的元素必须是一个未来的日期 |
@Pattern(Value) | 被注释的元素必须是符合正则表达式 |
这些都是注解,那么在配置文件中别忘了配置注解驱动