慕尼黑6008631
2018-05-09 15:48
我把
@Valid
注解去掉还是会做验证,小于18岁会抛出异常,只是
BindingResult
获取不到错误消息了,正常情况按照我的理解的话,如果不加这个注解应该不会去验证才对
@Valid
BindingResult
@Valid 这个是用来接收参数的时候验证的,将验证结果存入 BindingResult 结果中;
但是,你在实体类中加的@Min、@Max等验证规则是hibernate进行数据库交互的时候需要验证的,所以,如果你在实体中加了限制,那么只有在存入数据库的时候会再次进行验证。
所以,这个表单验证我认为存在缺陷,按道理他应该是验证你接受的数据,而不是你存入数据库的数据,因为很多情况下,接受的数据是需要经过处理才能存入数据库的,如果处理之后不符合接受时候的规则了,那么也将无法存入数据库!
默认应该会的
Spring Boot进阶之Web进阶
104040 学习 · 393 问题
相似问题