springmvc的@Validated注解使用
1. 校验的错误信息, 可以直接在bean属性上配置, 也可以在properties中配置。
目前创新互联已为近1000家的企业提供了网站建设、域名、网页空间、网站改版维护、企业网站设计、邗江网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
2. 将校验器bean配置到注解驱动上
3. 在需要校验的pojo前边添加@Validated,在需要校验的pojo后边添加BindingResult bindingResult接收校验出错信息
注意:@Validated和BindingResult bindingResult是配对出现,并且形参顺序是固定的(一前一后)。
使用validated所需配置:
1. jar包
2. application.xml
classpath:testErrMessages
3. testErrMessage.properties文件
文件结构:
文件内容:
4. bean的配置, 省略get/set方法
public class ValidBean { //直接配置错误信息 @NotBlank(message="用户名不能为空", groups= {UserGroup1.class}) private String name; @Max(value=120, message="年龄最大为120") private Integer age; // 使用配置文件中的错误信息, properties中的key: message="{key}"。 {}:占位符 @NotBlank(message="{validator.user.address}") private String address; }
5. controller
@Controller @RequestMapping("/test/") public class ValidTestController { /** * * @desc: 校验没有分组的属性 * @auth: zona * 2017年2月19日 下午2:35:42 * @param bean * @param bindingResult * @return */ @RequestMapping("valid") @ResponseBody public Result testValid(@Validated ValidBean bean, BindingResult bindingResult) { Result result = new Result(); Map retMap = new HashMap(); StringBuilder sb = new StringBuilder(); if(bindingResult.hasErrors()) { Listerrors = bindingResult.getAllErrors(); for (ObjectError err : errors) { sb.append(err.getDefaultMessage()+"; "); } result.setErrInfo(sb.toString()); result.setErrNo(1); return result; } retMap.put("bean", bean); result.success(); result.setData(retMap); return result; } /** * * @desc: 仅对属于userGroup组的属性进行校验 * @auth: zona * 2017年2月19日 下午2:37:03 * @param bean * @param bindingResult * @return */ @RequestMapping("group/valid") @ResponseBody public Result testGroupValid(@Validated(value=UserGroup1.class) ValidBean bean, BindingResult bindingResult) { Result result = new Result(); Map retMap = new HashMap(); StringBuilder sb = new StringBuilder(); if(bindingResult.hasErrors()) { List errors = bindingResult.getAllErrors(); for (ObjectError err : errors) { sb.append(err.getDefaultMessage()+"; "); } result.setErrInfo(sb.toString()); result.setErrNo(1); return result; } retMap.put("bean", bean); result.success(); result.setData(retMap); return result; } }
测试结果:
只校验没有分组的属性
校验UserGroup1组的属性
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
名称栏目:springmvc的@Validated注解使用
本文URL:http://scgulin.cn/article/ijcepe.html