springmvc的@Validated注解使用

网友投稿 476 2023-07-05

springmvc的@Validated注解使用

springmvc的@Validated注解使用

1. 校验的错误信息, 可以直接在bean属性配置, 也可以在properties中配置。

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()) {

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;

}

/**

*

* @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组的属性

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring多数据源配置实现方法实例分析
下一篇:Springboot+echarts实现可视化
相关文章

 发表评论

暂时没有评论,来抢沙发吧~