Bean Validation针对Java Bean进行了很好的处理,但是对于基本类型无法进行验证,如下面这个controller的请求, @Valid不会生效
@PostMapping("/save")
public Map save(@Email
@Valid
@RequestParam("email")
String email) {
return emailMessage(email);
}
在查阅资料的时候遇到看到:https://sdqali.in/blog/2015/1...
文中讲述了采用@Validated注解,以及配置全局异常处理器来解决,但是我尝试了,还是没有成功。
不可能强行将一两个基本类型参数封装成Java Bean,这样不合理,而且如果,有些地方校验还要多一个参数怎么办,比如a请求需要校验email,b请求需要校验email和validcode,这样强行封装Java Bean (email和validcode就不合理了)
各位遇到过么,有什么好的解决办法吗?谢谢
在这里发现有个用户提过一个类似的问题,但是我觉得楼下的回答并没有实际解决这个问题,所以重提一遍,附上他的问题链接:https://segmentfault.com/q/10...
已搞定,hibernate validation已经针对这个做了方法级别校验,包括参数,构造方法,返回值等校验
可以参考官方文档:
https://docs.jboss.org/hibern...
Validating method constraints小节
统一做AOP处理,
debug运行会看到validResult会有相应的校验结果
果然,这种东西应该是存在的,我就纳闷为什么会有Java Bean校验,反而没有基本类型参数校验,还想着要不要自己去弄一个,忒麻烦勒。
不懂得可以加我QQ:1016593477 一起探讨