springmvc的@Validated注解使用
1.校验的错误信息,可以直接在bean属性上配置,也可以在properties中配置。
2.将校验器bean配置到注解驱动上
3.在需要校验的pojo前边添加@Validated,在需要校验的pojo后边添加BindingResultbindingResult接收校验出错信息
注意:@Validated和BindingResultbindingResult是配对出现,并且形参顺序是固定的(一前一后)。
使用validated所需配置:
1.jar包
2.application.xml
classpath:testErrMessages
3.testErrMessage.properties文件
文件结构:
文件内容:
4.bean的配置,省略get/set方法
publicclassValidBean{ //直接配置错误信息 @NotBlank(message="用户名不能为空",groups={UserGroup1.class}) privateStringname; @Max(value=120,message="年龄最大为120") privateIntegerage; //使用配置文件中的错误信息,properties中的key:message="{key}"。{}:占位符 @NotBlank(message="{validator.user.address}") privateStringaddress; }
5.controller
@Controller @RequestMapping("/test/") publicclassValidTestController{ /** * *@desc:校验没有分组的属性 *@auth:zona *2017年2月19日下午2:35:42 *@parambean *@parambindingResult *@return */ @RequestMapping("valid") @ResponseBody publicResulttestValid(@ValidatedValidBeanbean,BindingResultbindingResult){ Resultresult=newResult(); MapretMap=newHashMap(); StringBuildersb=newStringBuilder(); if(bindingResult.hasErrors()){ Listerrors=bindingResult.getAllErrors(); for(ObjectErrorerr:errors){ sb.append(err.getDefaultMessage()+";"); } result.setErrInfo(sb.toString()); result.setErrNo(1); returnresult; } retMap.put("bean",bean); result.success(); result.setData(retMap); returnresult; } /** * *@desc:仅对属于userGroup组的属性进行校验 *@auth:zona *2017年2月19日下午2:37:03 *@parambean *@parambindingResult *@return */ @RequestMapping("group/valid") @ResponseBody publicResulttestGroupValid(@Validated(value=UserGroup1.class)ValidBeanbean,BindingResultbindingResult){ Resultresult=newResult(); MapretMap=newHashMap(); StringBuildersb=newStringBuilder(); if(bindingResult.hasErrors()){ List errors=bindingResult.getAllErrors(); for(ObjectErrorerr:errors){ sb.append(err.getDefaultMessage()+";"); } result.setErrInfo(sb.toString()); result.setErrNo(1); returnresult; } retMap.put("bean",bean); result.success(); result.setData(retMap); returnresult; } }
测试结果:
只校验没有分组的属性
校验UserGroup1组的属性
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。