2021-10-13 关于参数校验及@Valid和@RequestBody注解的组合使用

2023-05-16

一、前言:学会并熟悉注解的使用,在开发过程中,是可以提高效率和简化工作复杂程度的,也是会逐渐称为主要编码方式之一。

二、1、@RequestBody注解:该注解在处理控制层的请求方法的参数列表中,作用于参数上;他可以将请求主体中的参数绑定到一个对象中,这个对象一般是自定义的,请求的主体参数是通过HttpMessageConverter进行传递的,其原理是:根据请求主体中的参数名与对象的属性(字段)名进行匹配绑定值。

            下面是@RequestBody的使用示例(一般与@Valid注解配合使用):

      2、@Valid注解:用于校验,对于前端传进来的参数进行判断检查。其使用方法如下:在自定义的类中的字段上(参数字段),加上校验条件注解,来充当判断的条件,如下图:

 

 这里是一个自定义的用户类UserRegisterFrom,其中有三个字段,都是注册功能用需要用到的参数,在参数上加上判断条件的注解,这里介绍16个:

①@NotBlank:表示该字段不能为空白(空格),只作用于String(字符串),并且调用trim()长度要大于零。该注解的message为当字段不符合这个条件时的报错信息,可以通过BindingResult类的相关方法进行获取,打印在控制台查看;

②@NotEmpty:用于集合类,检查集合是否为空,不能为null,且长度必须大于零。③@NotNull:判断是否为null,用于基本类型,可以为empty。④@Null:限制只能为null
⑤@AssertFalse  :限制必须为false
⑥@AssertTrue:限制必须为true
⑦@DecimalMax(value):限制必须为一个不大于指定值的数字
⑧@Max(value):限制必须为一个不大于指定值的数字
⑨@Min(value) :限制必须为一个不小于指定值的数字
⑩@DecimalMin(value):限制必须为一个不小于指定值的数字
(11)@Digits(integer,fraction):限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
(12)@Future:限制必须是一个将来的日期
(13)@Pattern(value):限制必须符合指定的正则表达式
(14)@Size(max,min): 限制字符长度必须在min到max之间
(15)@Past:验证注解的元素值(日期类型)比当前时间早
(16)@Email:验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

如何获取控制台信息:在控制层方法中,传入BindingResult对象,调用其中的方法,打印错误信息时,建议使用@Slf4j,使用log.error打印,不推荐使用system.out.println。如图所示:

 三、总结:@RequestBody一般与@Valid注解一起使用,在参数的校验上,是十分友好的。

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

2021-10-13 关于参数校验及@Valid和@RequestBody注解的组合使用 的相关文章

  • 数据库作业:数据查询 连接查询

    若一个查询同时涉及两个以上的表 xff0c 称之为连接查询 连接查询是数据库中最主要的查询 xff0c 包括等值连接查询 xff0c 自然连接查询 xff0c 自身连接查询等 一 等值和非等值连接查询 1 1连接查询的WHERE子句中用来连
  • Ubuntu20.04安装arm-linux-gcc

    我安装的版本是arm linux gcc 4 6 4 xff0c 并且是64位的 在windows系统中把arm linux gcc 4 6 4 arm x86 64 tar bz2压缩包放在跟Ubuntu虚拟机的共享目录下在Ubuntu2
  • OSI七层模型总结

    OSI Open System Inter Connection 开放系统互联模型 定义了不同计算机互联的标准 xff0c 设计和描述了计算机网络通信的框架 OSI有7层和5层两种模型 xff0c 7层模型从上往下分别是 xff1a 应用层
  • 23种Python设计模式之工厂方法模式详解

    x1f496 作者 xff1a 大家好 xff0c 我是阿旭 x1f61c x1f389 支持我 xff1a 点赞 x1f44d 收藏 留言 x1f4dd x1f4e3 系列专栏 xff1a 23种设计模式详解 Python x1f341
  • STM32F103C8T6驱动SG90舵机--通过延时

    前言 最近博主在尝试驱动SG90舵机的时候 xff0c 发现网上教程都是通过定时器的方式 xff0c 还要进行各种配置 xff0c 太麻烦了 xff0c 于是自己用延时简单写了一下 xff0c 也能用 舵机的控制 舵机控制就是需要一个20m
  • MyBatis-Plus 分页设置不生效

    分页不生效的原因都是拦截器的问题 添加拦截器有两种情况 在配置类上加拦截器 64 Configuration public class MyBatisPlusConfig 新增分页拦截器 xff0c 并设置数据库类型为mysql 64 Be
  • 【关于使用SpringJUnit4ClassRunner单元测试报错问题】

    关于使用SpringJUnit4ClassRunner单元测试报错问题 今天单元测试如下的代码的时候发现项目老是报错 xff1a package com yhb jsxn service import java text SimpleDat
  • Arch linux使用yay安装软件时有效性检查错误

    错误 xff1a 一个或多个文件没有通过有效性检查 span class token operator 61 61 span span class token operator gt span 正在验证 span class token b
  • 无人驾驶(四)---远程桌面控制工具: NoMachine踩坑记录

    NoMachine for mac是一款免费的远程桌面访问工具 xff0c 这款软件的连接到远程桌面后延迟可以非常低 xff0c NX协议在高延迟低带宽的链路上提供了近乎本地速度的响应能力 xff0c 打破空间和时间的障碍 xff0c 让您
  • ubuntu 20.04安装配置ssh远程服务中出现的一些问题及总结

    0 安装配置过程参考 56条消息 ubuntu20 04开启SSH远程登录 从此开始低调范 的博客 CSDN博客 ubuntu开启ssh远程登录 1 输入sudo apt get install openssh server提示Readin
  • OSPF综合实验配置

    1 R4为ISP 其他只能配置IP地址 xff0c R4与其他所有直连设备间使用公有IP 与R4相连的路由器R3 5 6 7都要做NAT 保证底层私网能ping通公网 xff1b R4直连的路由器有缺省指向R4 xff0c 每台路由器都要有
  • 双向重发布--路由策略实验报告

    题目要求 xff1a 1 两个协议间进行多点双向重发布 2 R7环回没有宣告在OPSF中 xff0c 而是后期重发布进入 xff1b 3 解决环路 xff0c 所有路径选择最优 xff0c 且存在备份 一 配置底层IP地址 R3 int g
  • VLAN实验

    实验拓扑 实验配置 1 将接口划入vlan 2 配置路由器 xff0c 通过池塘下发地址 测试 pc2可以访问pc4 pc5 pc6 pc5不能访问pc6 pc1可以访问2 4 5 6
  • TCP三次握手四次挥手(图解)

    TCP三次握手 TCP连接的建立是一个三次握手的过程 如图所示 xff1a 主机A xff08 通常也称为客户端 xff09 发送一个标识了SYN的数据段 xff0c 表示期望与服务器A建立连接 xff0c 此数据段的序列号 xff08 s
  • kali换源详细步骤

    1 进入sources list文件编辑模式 2 把kali原有的源注释掉 xff0c 把阿里源放进去 deb span class token property https span span class token punctuatio
  • C/C++中的1<<n什么意思?

    1 lt lt 2 1的二进制是00000001 lt lt 意思是将二进制编码向左移动2位并将空位补0 即00000001转化为00000100 61 4 同理 1 gt gt n 为将二进制码向右移动n位
  • Linux 文本文件编码GBK转UTF-8

    Linux服务器中调用Oracle卸数工具sqluldr2 xff0c 数据库编码为GBK 需要卸UTF 8的数据文件出来 xff0c 如果某个字段为中文 xff0c 因为GBK为两个字节 xff0c UTF 8为三个字节 xff0c 同样
  • PHP-RCE绕过的姿势总结

    文章目录 前言一 命令执行空格过滤取反绕过命令分隔符黑名单绕过 xff08 比如flag字符 xff09 拼接编码单双引号的绕过 二 代码执行linux中的直接查看文件内容工具通过命令行写入webshell无数字字母绕过webshell无回
  • 一些文件目录架构知识

    在Linux内所有的数据都是以文件的形式来呈现 xff0c 因此 xff0c 在Linux系统中最重要的地方就在于目录树架构 目录树架构 xff1a 指以根目录 xff08 用斜线 表示 xff09 为主 xff0c 然后向下呈现为分支状的
  • date、cal、bc命令简单的使用

    在Linux系统中的命令是严格区分大小写的 xff0c 换句话说就是 xff0c 在Linux环境中字母大小写是不一样的东西 date 显示日期与时间 用法 xff1a 直接在命令行模式中输入 date 敲回车 xff1a 格式化输出功能

随机推荐