参数校验的必要性千篇一律,就不再多言了。
快速开始
1、引入jar包
springboot项目中引入jar包(有了springboot就是好,jsr303直接成了一个starter,不用再去担心版本,jar包不对什么的了)。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2、简单的示例
-->构造一个简单的POJO用于接收参数
public class UserVO implements Serializable {
private static final long serialVersionUID = 1L;
@NotBlank(message = "name不能为空")
private String name;
@NotNull(message = "年龄不能为空")
@Min(value = 18, message = "未成年人禁止访问")
private Integer age;
//省略get/set.....
}
-->controller
@Controller
@RequestMapping("/test")
public class TestController {
/**
* <p>jsr303测试
* */
@RequestMapping(value = "/jsr303test")
@ResponseBody
public String jsr303Test(@Valid UserVO userVO, BindingResult result) {
// 参数校验
if(result.hasErrors()) {
List<FieldError> errors = result.getFieldErrors();
Map<String, Object> map = new HashMap<>();
for(FieldError error : errors) {
map.put(error.getField(), error.getDefaultMessage());
}
return map.toString();
}