@valid(validated)校验(验证) 的使用注意事项

news/2024/7/24 2:16:22 标签: java, spring boot, spring

springbootvalidvalidated_0"> 首先先查看springboot项目有没有@valid和@validated依赖,没有的话就导入依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

1:对于只有参数的时候使用,需要在类上加@validated,验证才生效

java">/**
 * @Author xqf
 * @since 2023-08-27
 */
@RestController
@RequestMapping("/sys")
@Api(tags="参数校验")
@Slf4j
@Validated
public class ValidTestController {
	@ApiOperation("验证参数")
	@RequestMapping(value = "/validParameter", method = RequestMethod.POST)
	public Result<JSONObject> checkValidParameter(@NotBlank String validObject) {
		Result<JSONObject> result = new Result<JSONObject>();
		return result;
	}
}

2:验证对象里面的属性如下

java">package org.jeecg.modules.system.controller;

import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;

/**
 * @Author xu
 * @create 2023/8/27 11
 */
@RestController
@RequestMapping("/sys")
@Api(tags="参数校验")
@Slf4j
public class ValidTestController {
	@ApiOperation("验证对象")
	@RequestMapping(value = "/validObjec", method = RequestMethod.POST)
	public Result<JSONObject> checkValidObjec(@RequestBody @Valid ValidObject validObject)  {
		Result<JSONObject> result = new Result<>();
		return result;
	}
}

注意:验证对象,@NotBlank 注解不适用于整数类型,只能使用@NotNull或@Min(value)

java">package org.jeecg.modules.system.controller;

import lombok.Data;
import org.jeecg.modules.system.vo.dto.Age;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 验证对象
 * @Author xu
 * @create 2023/8/27 11
 */
@Data
public class ValidObject {

    @NotNull(message = "年龄不可为空")
    private Integer age;

    @NotBlank(message = "名字不可为空")
    private String name;
    private Integer phone;
}

3:如果对象继承Map的话,验证对象时,都获取不了对象,只能通过map的get(“属性”)获取


http://www.niftyadmin.cn/n/4975789.html

相关文章

opencv的haarcascade_frontalface_default.xml等文件

文章目录 GitHub下载在安装好的OpenCV文件夹下寻找opencv-python中获取 GitHub下载 下载地址&#xff1a;https://github.com/opencv/opencv/tree/master/data/haarcascades 在安装好的OpenCV文件夹下寻找 路径如下&#xff1a; 你安装的opencv路径\OpenCV\opencv\build\et…

【Docker】网络

文章目录 Docker 网络基础Docker网络管理Docker网络架构CNMLibnetwork驱动 常见的网络类型 Docker 网络管理命令docker network createdocker network inspectdocker network connectdocker network disconnectdocker network prunedocker network rmdocker network ls docker …

集丰照明|汽车美容店设计,装修色彩灯光搭配方法

正确处理好店面的空间设计。 店铺各个功能区设计要合理&#xff0c;衔接合理&#xff0c;这样既能提高员工的工作效率也能提高顾客的满意度。合理安排店铺的空间分配&#xff0c; 要给顾客一种舒适度&#xff0c;既不能让顾客感觉到过于拥挤&#xff0c;又不能浪费店铺的有限空…

使用实体解析和图形神经网络进行欺诈检测

图形神经网络的表示形式&#xff08;作者使用必应图像创建器生成的图像&#xff09; 一、说明 对于金融、电子商务和其他相关行业来说&#xff0c;在线欺诈是一个日益严重的问题。为了应对这种威胁&#xff0c;组织使用基于机器学习和行为分析的欺诈检测机制。这些技术能够实时…

python下载bilibili视频,下载合集,下载选集

一. 内容简介 bilibili视频下载&#xff0c;下载合集&#xff0c;下载选集 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接&#xff1a;https://pan.baidu.com/s/1tO8xSmaqqoTxHI9P_UkDBw?pwd1234 提取码&#xff1a;1234 三.主要流程 3.1 …

#systemverilog# 之 event region 和 timeslot 仿真调度(七)Active/NBA 咋跳转的?

目录 一 目的 二 案例分析 2.1 先Active域,后 NBA 域 2.2 先Active域,后 NBA 域,后NBA域

Visual Studio 2017安装和项目配置

目录 前言1. What、Why and How1.1 What1.2 Why1.3 How 2. 安装3. 创建新项目4. 配置OpenCV库4.1 下载opencv安装包4.2 配置系统环境变量4.3 VS项目环境配置4.4 总结 5. 已有项目添加6. Tips6.1 常用快捷键6.2 字体和颜色选择6.3 配置编译路径 结语下载链接参考 前言 最近因为项…

STM32的lorawan协议栈

LoRa 是LPWAN通信技术中的一种&#xff0c;是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗的折衷考虑方式为用户提供一种简单的能实现远距离、长电池寿命、大容量的系统&#xff0c;进而扩展传感网络。目前&…