validation校验包常用校验注解@NotEmpty,@NotBlank,@NotNull等注解

2023-11-15

一、常用注解@NotEmpty,@NotBlank,@NotNull介绍
包位置:javax.validation.constraints.xxx

@NotEmpty 用在集合上面,一般用来校验List类型(不能注释枚举),而且长度必须大于0

@NotBlank 用在String上面,一般用来校验String类型不能为空,而且调用trim()后,长度必须大于0。

@NotNull 用在所有类型上面,一般用来校验Integer类型不能为空,但可以为empty。

需要搭配@Valid使用,在检验Controller的入参是否符合规范时

使用方法如下:

请求类:

public class re {
    /**
     * 昵称
     */
    @NotBlank(message = "昵称不能为空", groups = {ValidatedGroup.QueryGroup.class})
    private String nickname;
   /**
     * 用户ID
     */
    @NotEmpty(message = "ID不能为空", groups = {ValidatedGroup.QueryGroup.class})
    private List<String> userIds;
}

"groups = {ValidatedGroup.QueryGroup.class}" 表示分组校验,需写类,如下

/**
 * 接口参数校验组对象
 */
public class ValidatedGroup {

    /**
     * 新增操作校验组
     */
    public interface AddGroup{};

    /**
     * 更新操作校验组
     */
    public interface UpdateGroup{};

    /**
     * 查询操作校验组
     */
    public interface QueryGroup{};
}

Controller代码:

 public Result<?> test(@Validated @RequestBody re  re){
        …………逻辑代码
}


-------例-------
@PostMapping(value = "/settingServiceCharge")
public Result<?> settingServiceCharge(@Validated({ValidatedGroup.QueryGroup.class}) @RequestBody PcSettingServiceChargeRequest request) {
        return pcDealerService.settingServiceCharge(request);
}


此包下的其他注解:

注解    含义
@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)    元素必须符合指定的正则表达式
@Email    元素必须是电子邮箱地址
@Length    字符串的大小必须在指定的范围内
@NotEmpty    字符串必须非空
@Range    元素必须在合理的范围内
当然知道了上面注解的用法后,还需要知道@Valid与@Validated的使用与区别

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

validation校验包常用校验注解@NotEmpty,@NotBlank,@NotNull等注解 的相关文章

随机推荐

  • 转:最详细的JavaScript 教程,入门级都能看懂

    目录 介绍 JavaScript特点 用法 实例1 head中的script函数 实例2 body中的script函数 实例3 外部调用JavaScript 输出 实例1 aler 弹窗输出 实例2 document write 输出 实例
  • TTL电路的拉电流、灌电流、扇出数及扇出数计算

    电流 灌电流 扇入数 扇出数 扇出数在数字电路中是非常常见的名词 下面我们先给出这些概念的定义 然后从原理出发 介绍这些名词的关系及扇出数的计算方法 灌电流 灌电流是数字电路输出端口为低电平时外部负载输入的电流 表征输入电流的能力 拉电流
  • 算力还是服务器?这不是一道选择题

    关注我们牛年牛气冲天 算力 顾名思义就是设备的计算能力 它无影无形 虽然看不见 摸不到 却真实存在 小到智能手机 PC 大到服务器 超级计算机 算力就 藏 存各种各样的硬件设备中 像沉睡的金矿 等待你去挖掘 算力 说了算 在云计算时代 一切
  • [荐]硕博经验——科研论文阅读与写作实战技巧

    又转自西电好网 http bbs xdnice com b99t378538 htm硕博经验 转来的 早知道就好了 少走很多弯路啊 该文从 举止优雅的猪 那里看见的 感觉很不错 不过我感觉到了博士才知道这些似乎有点晚了 或者是有不少人也不会
  • 21.openssl编程——EVP

    21 1 EVP 简介 Openssl EVP high level cryptographic functions 提供丰富的密码学中的各种函数 EVP主要封装如下功能函数 a 实现了base64编解码BIO b 实现了加解密BIO c
  • Android Studio 界面显示不全问题

    最近想试试google的android studio开发工具 安装完成后 按照向导新建一个工程 发现向导界面太大 整个屏幕显示不过来 调整界面大小也无法搞定 我用的是ubuntu系统 笔记本分辨率为1366 768 上网百度了好多 发现不少
  • redis集群设置密码

    注意事项 1 如果是使用redis trib rb工具构建集群 集群构建完成前不要配置密码 集群构建完毕再通过config set config rewrite命令逐个机器设置密码 2 如果对集群设置密码 那么requirepass和mas
  • Prometheus 安装及应用(内容较全面)

    prometheus 安装及应用 prometheus 官网 grafana dashboards 模板 prometheus 参考示例 Prometheus普罗米修斯 希腊神话人物 是一个开源的系统监控和告警系统 在kubernetes容
  • 较完整的koa2项目结构实例、脚手架-mysql,gulp

    koa2 starter A koa2 starter by using mysql gulp includes async await pm2 express style middlewares Based on 17koa koa2 d
  • 什么是LDO的线性调整率和负载调整率?

    原文来自公众号 工程师看海 后台回复 LDO仿真文件 LDO是常见的电源架构 线性调整率和负载调整率是两个重要的参数 线性调整率 line regulation 指的是 在特定负载电流条件下 当出入电压变化时 引起的对应输出电压的变化量 从
  • 华为OD题目: 简单的解压缩算法

    华为OD题目 简单的解压缩算法 知识点栈 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 现需要实现一种算法 能将一组压缩字符串还原成原始字符串 还原规则如下 1 字符后面加数字N 表示重复字符N次 例如 压缩内容为A3 表
  • 以太坊如何通过构建智能合约来销售商品?

    如何通过构建以太坊智能合约来销售商品 这是个问题 毫无疑问 比特币已经改变了我们看待和理解什么是金钱 价值以及最近由智能合约产生的所有权的方式 这很有趣 因为几乎每个人都听说过它或加密货币 来自许多业务领域的人 不仅仅是我们 IT工作者 在
  • %f %.2f %lf %.2lf的含义

    f表示单精度浮点型 float 默认保留 lf表示双精度浮点型 double 默认保留6位 2表示只保留小数点后两位数 下面举例 include
  • Attention机制的解释

    The Illustrated Attention Attention Seq2Seq 是一种由Encoder和Decoder组成的结构 可以将输入转化成一种中间形态并在Decoder输出 而Attention则是解决方案 经典的是Bahd
  • 设计模式:简单工厂、工厂方法、抽象工厂

    参考 Java设计模式之创建型 工厂模式详解 简单工厂 工厂方法 抽象工厂 知乎 工厂方法 以生产手机为例 具体的UML图如下 这种方法的优点是对于用户来说 不再需要面对具体的生产逻辑 只需要将生产的安排工作和细节都交给工厂类去做 缺点是在
  • MATLAB算法实战应用案例精讲-【深度学习】ECANet注意力机制(附Python实现代码)

    目录 前言 算法原理 算法思想 局部跨通道交互 Local Cross Channel Interaction
  • python批量复制文件问题,Python—批量复制文件

    批量复制文件 并修改后缀名 import os shutil yml文件根路径 ymlroot E GTEA gaze 原始图片根路径 srcroot E GTEA Gaze Dataset png 目标图片根路径 dstroot E Ga
  • Hadoop命令大全

    Hadoop命令大全 1 列出所有Hadoop Shell支持的命令 bin hadoop fs help 2 显示关于某个命令的详细信息 bin hadoop fs help command name 3 用户可使用以下命令在指定路径下查
  • C++入门编程之成语接龙

    成语接龙问题 问题描述 题目描述 成语接龙是中华民族传统的文字游戏 它有着悠久的历史 也有广泛的社会基础 是老少皆宜的民间文化娱乐活动 请设计四字成语接龙游戏 功能需求 1 计一个四字成语类Idiom 包含成语内容 首字母的拼音 末尾字母
  • validation校验包常用校验注解@NotEmpty,@NotBlank,@NotNull等注解

    一 常用注解 NotEmpty NotBlank NotNull介绍 包位置 javax validation constraints xxx NotEmpty 用在集合上面 一般用来校验List类型 不能注释枚举 而且长度必须大于0 No