Validation分组校验
需求
在pojo中定义校验规则,而pojo是被多个Controller所共用,当不同的Controller方法对同一个pojo进行校验,但是每个Controller方法需要不同的校验
解决办法:
定义多个校验分组(其实是一个Java接口),分组中定义有哪些规则
每个Controller方法使用不同的校验分组
实现
添加分组接口
public interface ValidationGroup1 {
// 接口中不需要定义任何方法,仅是区分对不同的校验规则进行分组
// 此分组中只校验名称长度
}
pojo属性指定接口
// 检查名称在3到5个字符中间
// 只应用于group1
@Size(min = 3, max = 5, message = "{user.name.length}", groups = { ValidationGroup1.class })
private String name;
在Controller方法中使用指定分组的校验
// @Validated(value=(ValidationGroup1.class))指定使用ValidationGroup1分组的校验
@RequestMapping("/editUserSubmit")
public String editUserSumit(Model model, Integer id, @Validated(value=(ValidationGroup1.class)) UserCustom userCustom, BindingResult bindingResult)
throws Exception {}