当前位置: 首页 > news >正文

Spring Validation解决后端表单校验

@NotNull:从前台传递过来的参数不能为null,如果为空,会在控制台日志中把message打印出来

@Range:范围,最大多少,最小多少

@Patten,标注的字段值必须符合定义的正则表达式(按照业务规则,进行灵活的正则表达式的校验)

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>
复制代码

        为了能够让我们的程序对对象进行校验,需要使用@Valid注解,表示该控制器方法需要进行参数的校验,对后面的参数按照定义的Validation规则进行校验,如果不加@Valid注解,则代表不对SearchParamDTO对象进行校验

        会出现这个异常:无效的、错误的请求信息,因为没有满足我们自定义的验证要求

         

        这些错误信息我们往往要把它包装成json,向前端进行返回,我们要额外开发一个类:
我们增加一个切面,在这个切面中对BindException.class进行拦截,拿到所有的绑定异常,封装成我们要的json结构,然后返回:

 具体的错误信息封装成map返回

 自定义的,向客户端返回我们验证失败的提示信息,有良好的兼容性





 

 另外一个老师这里加了一个全局异常注解:
        当我们的注解不符合要求的时候,会抛出一个绑定异常,我们只需在全局异常拦截这一块,去监控这个绑定异常:

        

 未解决:

        请教下,如果是不同接口用同一个实体类参数,但是校验规则不同怎么便捷的用注解的方式实现校验:
        @Validated(class)这样来注解,然后参数校验上加groups = {class},这样只校验定义了这个class的注解了,class你修改新增用不同的class就行。 

自定义注解:

 

http://www.lryc.cn/news/337689.html

相关文章:

  • Harmony鸿蒙南向驱动开发-UART接口使用
  • 【示例】MySQL-事务控制示例:账户转账-savepoint关键字
  • STM32使用标准版RT-Thread,移植bsp中的板文件后,想使用I/O设备模型,使用串口3或者串口4收发时,发现串口3或者串口4没反应
  • MVCC(解决MySql中的并发事务的隔离性)
  • 第四十八章 为 Web 应用程序实现 HTTP 身份验证 - 在处理请求之前在 CSP 中进行身份验证
  • 家庭网络防御系统搭建-siem之security onion 安装配置过程详解
  • 【MATLAB源码-第23期】基于matlab的短时傅里叶STFT信号变换仿真,得到信号的时频曲线图。
  • 链表中倒数最后k个结点【c语言】
  • 在一台恢复测试机器上验证oracle备份有效性
  • Harmony鸿蒙南向驱动开发-MIPI CSI
  • 最优算法100例之43-包含min函数的栈
  • 什么是One-Class SVM
  • 【Ubuntu】远程连接乌班图的方式-命令行界面、图形界面
  • Ubuntu无网络标识的解决方法
  • 基于springboot实现课程答疑管理系统项目【项目源码+论文说明】
  • 【JVM】面试题汇总
  • 趣谈 Rust 的 Copy trait 和 Clone trait
  • 02 - Git 之命令 +
  • 每日一练(力扣)
  • JWT详解及实战教程
  • vue通过echarts实现数据可视化
  • react17中使用setState导致了死循环
  • 2024年P气瓶充装证模拟考试题库及P气瓶充装理论考试试题
  • Python学习笔记(一)
  • 记一次http访问超时服务器端调试
  • C/C++内存泄漏及检测
  • 跟TED演讲学英文:Why AI will spark exponential economic growth by Cathie Wood
  • 常用组合逻辑电路模块(4):数值比较器
  • 实时时钟模块RX8901CE具有数字温度补偿功能,助力工业设备实现精准控制
  • Acrobat Pro DC 2023 for mac直装激活版 pdf编辑处理工具