SpringBoot2 @validated 类型效验
详细参见:《Spring Boot 2精髓:从构建小系统到架构分布式大系统》 第三章 3.5节 验证框架
package com.archibladwitwicke.springboot2.chapter03.pojo; import javax.validation.constraints.Max; import javax.validation.constraints.NotNull; import javax.validation.constraints.Null; public class UserValidated { public interface Add { } public interface Update { } @NotNull(groups = Update.class) @Null(groups = Add.class) private Long id; @NotNull(message = "名字不能为空!") private String name; @NotNull(message = "年龄不能为空!") @Max(value = 100, message = "年龄不能大于100岁!") private String age; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
package com.archibladwitwicke.springboot2.chapter03.controller; import com.archibladwitwicke.springboot2.chapter03.pojo.UserValidated; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller @RequestMapping("/validated") public class ValidatedController { @RequestMapping("/validateuser") @ResponseBody public String validateUser(@Validated UserValidated userValidated, BindingResult bindingResult) { String result = null; if (bindingResult.getErrorCount() == 0) { result = "通过验证!"; } List<ObjectError> allErrors = bindingResult.getAllErrors(); for (ObjectError error : allErrors) { String defaultMessage = error.getDefaultMessage(); System.out.println(defaultMessage); } return result; } @RequestMapping("/validateusergroup") @ResponseBody public String validateUserByGroup(@Validated({UserValidated.Add.class}) UserValidated userValidated, BindingResult bindingResult) { String result = null; if (bindingResult.getErrorCount() == 0) { result = "通过验证!"; } List<ObjectError> allErrors = bindingResult.getAllErrors(); for (ObjectError error : allErrors) { String defaultMessage = error.getDefaultMessage(); System.out.println(defaultMessage); } return result; } }