当前位置:   article > 正文

Java —— 实体属性入参非空校验

Java —— 实体属性入参非空校验

问题

在接口入参为实体时,实体的有些属性是必传的,不能为空,如何在controller层校验,对非法入参进行拦截呢?

解决

使用validation包中的注解在实体中进行配置。

import javax.validation.constraints.*;

示例

以key、value不能为空举例。

实体定义

在不能为空的属性上增加@NotNull注解

  1. import lombok.Builder;
  2. import lombok.Data;
  3. import javax.validation.constraints.NotNull;
  4. import java.io.Serializable;
  5. @Data
  6. @Builder
  7. public class ValidationDemo implements Serializable {
  8. private static final long serialVersionUID = 4673931777866766314L;
  9. private Integer id;
  10. @NotNull
  11. private String key;
  12. @NotNull
  13. private String value;
  14. }

接口定义

在需要进行合法性校验的接口入参上增加注解@Validated

  1. public int insertSelective(@Validated @RequestBody ValidationDemo validationDemo) {
  2. ...
  3. }

validation常用注解汇总

Constraint

详细信息

@Null被注释的元素必须为 null
@NotNull被注释的元素必须不为 null
@AssertTrue被注释的元素必须为 true
@AssertFalse被注释的元素必须为 false
@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min)被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past被注释的元素必须是一个过去的日期
@Future被注释的元素必须是一个将来的日期
@Pattern(value)被注释的元素必须符合指定的正则表达式

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/310877
推荐阅读
相关标签
  

闽ICP备14008679号