为了账号安全,请及时绑定邮箱和手机立即绑定

SpringMVC集成hibernate validator进行参数验证时,为什么不直接抛异常?

SpringMVC集成hibernate validator进行参数验证时,为什么不直接抛异常?

天涯尽头无女友 2019-05-25 16:37:33
各位大神好,请教个问题1.环境spring4.3.7hibernate-validator-5.4.12.配置如下classpath:messages/messagesclasspath:messages/ValidationMessages3.bean和ControllerpublicclassUserRequest{@NotBlank(message="{login.valid.username.notnull}")privateStringusername;@NotBlank(message="{login.valid.password.notnull}")privateStringpassword;publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}}@RequestMapping(value="/login",method=RequestMethod.POST)@ResponseBodypublicObjectlogin(@Valid@RequestBodyUserRequestur,BindingResultresult,HttpServletRequestrequest){log.debug("login");if(result.hasErrors()){returnresult.getAllErrors().get(0);}……}问题:为什么一定要在代码中用result.hasErrors()显示判断?难道不能验证UserRequest中的字段不符合定义就直接抛异常,这样不更合理些吗?
查看完整描述

3 回答

?
慕娘3812133

TA贡献1条经验 获得超0个赞

请问如果要实现这个功能的话能实现吗?就是验证错误后自动抛出异常。我想用拦截器但是不知道怎么实现。

查看完整回答
反对 回复 2020-03-18
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

你只是在你的应用场景中考虑为什么,一个框架更多的是考虑大多数时候怎么做最合理。
大部分对于客户端数据的验证都不应当被当作“异常”,而是用户在不知道的情况下被允许犯的错误。
                            
查看完整回答
反对 回复 2019-05-25
  • 3 回答
  • 0 关注
  • 1365 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号