springboot注解@NotNull,@NotBlank,@Valid自动判定空值

2021-06-05 15:03

阅读:443

标签:git   ddr   control   最大值   变化   ret   att   项目   大小   

搭建springboot项目,我们都是采用的Restful接口,那么问题来了,当前端调用接口或者是其他项目调用时,我们不能单一靠调用方来控制参数的准确性,自己也要对一些非空的值进行判定。
 
按照我们以往的做法,都是对request中的参数一个一个进行非空判定。
Model:
public class Order {
private Long userID;
private Long addressID;
private string comment;
}

Controller:
@PostMapping ( "/createOrders")
public string createorders(@RequestBody Order dto){
if(dto.getUserID==null)
return "userID不能为空";if(dto.getAddressID==null)
return "addressID不能为空";if(dto.getComment==null)
return "comment不能为空";return "sucess";
}
这种做法首先是可取的,能达到我们的要求,但是这样如果model字段过多,判定的就很多,相对维护起来就不是那么方便,其次增加controller层的负担,既然我们来到spring4的时代,就应该适应使用注解的趋势,下面是使用注解后的比变化。
Model:
public class order {
@NotNull(message ="用户ID不能为空"")private Long userID;
@NotNull(message =“收货人地址id不能为空")private Long addressID;
@NotBlank (message ="备注不为空")private String comment;
}

Controller:
@PostMapping ( "/createOrders")
public String createOrders(@ReguestBody @Valid Order dto,BindingResult results){
if(results.hasErrors())
return results.getFieldError().getDefaultMessage();
return " success";
}

  这样我们就只需要在model字段上加上非空验证和相应提示语就好了。

常用的校验注解

javax.validation.constraints.NotNullNull被注释的元素必须为null
@NotNull被注释的元素不能为null
@AssertTrue被注释的元素必须为true
@AssertFalse被注释的元素必须为falae
@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin (value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值@DecimalMax (value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max , min)被注释的元素的大小必须在指定的范围内。
@Digits(integer,fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past被注释的元素必须是一个过去的日期
@Future被注释的元素必须是一个将来的日期
@Pattern(value)被注释的元素必须符合指定的正则表达式。
@Email被注释的元素必须是电子邮件地址
@Length被注释的字符串的大小必须在指定的范围内NotEmpty被注释的字符串必须非空
@Range被注释的元素必须在合适的范围内

springboot注解@NotNull,@NotBlank,@Valid自动判定空值

标签:git   ddr   control   最大值   变化   ret   att   项目   大小   

原文地址:https://www.cnblogs.com/miaomiaobeiguaipaole/p/14627761.html


评论


亲,登录后才可以留言!