参数校验注解
@Valid 需要校验,相当于动开关,加入注解开启校验功能
@Not Null 非空
@Max(value) 最大值
@Size(max,min) 字符串长度范围限制
可以写在用于传入Request的类中,在传入参数的时候在前面计入注解@Valid
进入类中为需要校验的属性加上注解即可。
public class AddCategoryReq { @Size(min = 2, max = 5) @NotNull(message = "name不能为null") private String name; @NotNull(message = "type不能为null") @Max(3) private Integer type; @NotNull(message = "parentId不能为null") private Integer parentId; @NotNull(message = "orderNum不能为null") private Integer orderNum; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } public Integer getParentId() { return parentId; } public void setParentId(Integer parentId) { this.parentId = parentId; } public Integer getOrderNum() { return orderNum; } public void setOrderNum(Integer orderNum) { this.orderNum = orderNum; } }
如果传入参数不符合,控制台会报错
org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [1] in public com.xatu.springlearn.common.ApiRestResponse com.xatu.springlearn.controller.CategoryController.addCategory(javax.servlet.http.HttpSession,com.xatu.springlearn.model.request.AddCategoryReq): [Field error in object 'addCategoryReq' on field 'name': rejected value [鸭肉12345678]; codes [Size.addCategoryReq.name,Size.name,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [addCategoryReq.name,name]; arguments []; default message [name],5,2]; default message [个数必须在2和5之间]]
当NotNull注解比较多的时候可以
@NotNull(message = "type不能为null")
这样在返回message时不再返回默认的信息而是自己定义的信息。