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()){
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;
}
}
测试结果:
只校验没有分组的属性
校验UserGroup1组的属性
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。