一样的做个记录,每次找资料耗费时间
场景: 嗯! 就是. 对接收参数进行合规性校验
目前我知道的有两种方式
第一种
直接写在Controller的方法中
public HttpResult test(@NotNull(message = "缺少参数:id") Long id)
第二种: 写在实体类中
/**
* @desc: 运单新增请求bean
* @author: Lt
* @date: 2024/3/25 17:17
*/
@Setter
@Getter
@Accessors(chain = true)
public class AddWaybillReq {
@NotNull(message="缺少参数: orderId")
private Long orderId;
@NotNull(message = "缺少参数: orderNo")
private Long orderNo;
@NotNull(message = "缺少参数: truckId")
private Integer truckId;
//司机id
@NotNull(message = "缺少参数: truckId")
private Integer driverId;
//地址id
@NotNull(message = "缺少参数: addressId")
private Integer addressId;
}
然后控制器类添加@Validated 方法添加@Valid注解
@Validated
@RestController
@RequestMapping("/task")
public class TaskController{
@PostMapping("/addTask")
public HttpResult addTask(@RequestBody @Valid AddWaybillReq addWaybillReq)
常用的几个校验注解
//被注释的元素必须为null
@Null
//被注释的元素不能为null
@NotNull
//被注释的元素必须为true
@AssertTrue
//被注释的元素必须为false
@AssertFalse
//被注释的元素必须是?个数字,其值必须?于等于指定的最?值
@Min(value)
//被注释的元素必须是?个数字,其值必须?于等于指定的最?值
@Max(value)
//被注释的元素必须是?个数字,其值必须?于等于指定的最?值
@DecimalMin(value)
//被注释的元素必须是?个数字,其值必须?于等于指定的最?值
@DecimalMax(value)
//被注释的元素的??必须在指定的范围内。
@Size(max,min)
//被注释的元素必须是?个数字,其值必须在可接受的范围内
@Digits(integer,fraction)
//被注释的元素必须是?个过去的?期
@Past
//被注释的元素必须是?个将来的?期
@Future
//被注释的元素必须符合指定的正则表达式。
@Pattern(value)
//被注释的元素必须是电?邮件地址
@Email
//被注释的字符串的??必须在指定的范围内
@Length
//被注释的字符串必须?空
@NotEmpty
//被注释的元素必须在合适的范围内
@Range
已有 0 条评论