public ResultInfo update(@Validated({Update.class}) UserVO userVO) { return new ResultInfo().success(userVO); } 细心的同学可能已经注意到,自定义的Update分组接口继承了Default接口。校验注解(如:@NotBlank)和@validated默认都属于Default.class分组,这一点在javax.validation.groups.Default注释中有说明 /**...
class, AddGroup.class}) private Integer age; /** * 没有指定组别,默认是Default.class组别 */ @NotBlank(message = "编号不能为空") @Pattern(regexp = "^(广告组)\\d$", message = "编号要以广告组开头,以1-9结尾") private String number; /** * @see com.tt.enums.PersonStatusEnum */...
public interface Default { } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 在编写Update分组接口时,如果继承了Default,下面两个写法就是等效的: @Validated({Update.class}) @Validated({Update.class,Default.class}) 1. 2. 3. 请求一下/update接口可以看到,不仅校验了name字段,也校验...
public class ValidationUtils{ public static <E, T extends ValidationBaseDTO> List<T>validate(Validator validator, E e) { return validate(validator, e, Default.class); } public static <E, T extends ValidationBaseDTO> List<T> validate(Validator validator, E e, Class<?> groupClass) { Set<C...
public Girl addGirl(@Valid Girl girl, BindingResult bindingResult) { if(bindingResult.hasErrors()){ System.out.println(bindingResult.getFieldError().getDefaultMessage()); return null; } return girlResposity.save(girl); } @validated 两者的区别: // @Valid只能用在controller,@Validated可以用在其他...
public class CheckController { @PostMapping("stu") public String addStu(@Validated({IGroupA.class}) @RequestBody StudentBean studentBean){ return "add student success"; } } 1. 2. 3. 4. 5. 6. 7. 测试: 这里对分组IGroupB的就没检验了 ...
@GroupSequence({Default.class, IGroupA.class, IGroupB.class}) public interface IGroup { } 需要校验的Bean,分别定义IGroupA对age进行校验,IGroupB对className进行校验: public class StudentBean implements Serializable{ @NotBlank(message = "用户名不能为空") ...
// group是可以⾃定义的,我默认定义了Add,Update,Delete,Search这四个组 @PostMapping("update")public boolean updateUser(@Validated({Update.class, Default.class}) @RequestBody User user) { ProdAllotStandard info = allotStandardService.getProdAllotStandardWithDetailById(id);return info;} // 当然...
@GroupSequence({Default.class,IGroupA.class,IGroupB.class})publicinterfaceIGroup{} 需要校验的Bean,分别定义IGroupA对age进行校验,IGroupB对className进行校验: 代码语言:javascript 复制 publicclassStudentBeanimplementsSerializable{@NotBlank(message="用户名不能为空")privateString name;@Min(value=18,message="年...
publicclassUserAccount { @NotNull@Size(min = 4, max = 15)private String password; @NotBlankprivate String name; // standard constructors / setters / getters / toString } 接下来,让我们看看控制器。在这里,我们将使用带有@Valid注释的saveBasicInfo方法来验证用户输入:@RequestMapping(value = "/...