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

各位大神好,请教个问题
1.环境
spring4.3.7
hibernate-validator-5.4.1
2.配置如下
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"name="messageSource">
classpath:messages/messages
classpath:messages/ValidationMessages
3.bean和Controller
publicclassUserRequest{
@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)
@ResponseBody
publicObjectlogin(@Valid@RequestBodyUserRequestur,BindingResultresult,HttpServletRequestrequest){
log.debug("login");
if(result.hasErrors()){
returnresult.getAllErrors().get(0);
}
……
}
问题:为什么一定要在代码中用result.hasErrors()显示判断?难道不能验证UserRequest中的字段不符合定义就直接抛异常,这样不更合理些吗?
天涯尽头无女友
浏览 1366回答 3
3回答

慕娘3812133

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

子衿沉夜

你只是在你的应用场景中考虑为什么,一个框架更多的是考虑大多数时候怎么做最合理。大部分对于客户端数据的验证都不应当被当作“异常”,而是用户在不知道的情况下被允许犯的错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript