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

[后端作业W10] 参数验证

问题:按PPT 方式触发一个新的参数验证异常的例子,展示如PPT 前后端信息的相关代码和截图

一、什么是“参考验证”

参考验证=后端对前端传过来的数据做规则检查

  • 不用写一堆if/else判断
  • 用注解一次性约束字段
  • 不合法直接抛异常,全局统一处理
  • 一次配置,到处服用,不改多处代码

PPT中的4个生效条件(必须记住)

  1. 实体类字段上加验证注解(@NotBlank/@Size等)
  2. Controller接口参数加@Validated
  3. @RestControllerAdvice全局异常处理器
  4. 捕获MethodArgumentNotValidException异常

二、PPT中【用户手机号长度验证】的例子

PPT中用的是SysUser用户表+phonenumber字段,限制它每次从前端传过来的长度不超过30

步骤1:给实体类SysUser加验证注解

找到SysUser.java,给phonenumber字段加上内容

文件位置:D:\RuoYi-Vue-v3.8.2\ruoyi-common\src\main\java\com\ruoyi\common\core\domain\entity\SysUser.java

步骤2:给Controller接口加@Validated开启验证

找到SysUserController.java,找到修改用户的方法并修改(@Validated)

文件位置:D:\RuoYi-Vue-v3.8.2\ruoyi-admin\src\main\java\com\ruoyi\web\controller\system\SysUserController.java

步骤3:确认全局异常处理器已存在

文件位置:D:\RuoYi-Vue-v3.8.2\ruoyi-framework\src\main\java\com\ruoyi\framework\web\exception\GlobalExceptionHandler.java

步骤4:前端操作触发异常

三、新的参数异常例子

我找的是SysDept+deptName字段,限制部门名称长度不能超过30个字符

步骤1:给实体类SysDept加验证注解

找到SysDept.java,找到deptName的方法和注解

文件位置:D:\RuoYi-Vue-v3.8.2\ruoyi-common\src\main\java\com\ruoyi\common\core\domain\entity\SysDept.java

步骤2:给Controller加@Validated

找到SysDeptController.java,找到修改部门的方法和注解

文件位置:D:\RuoYi-Vue-v3.8.2\ruoyi-admin\src\main\java\com\ruoyi\web\controller\system\SysDeptController.java

步骤3:前端操作触发异常

后端控制台日志

~~~

http://www.jsqmd.com/news/767611/

相关文章:

  • AppleAI项目解析:Swift与Core ML集成实践指南
  • 用HuggingFace的chinese-roberta-wwm-ext,10行代码搞定微博评论情感分类(附完整代码)
  • 保姆级教程:用Gazebo Garden新版为你的PX4无人机仿真‘升级’(Ubuntu 20.04环境)
  • 5.6笔记
  • 终极指南:如何用AXOrderBook构建A股高频交易订单簿系统
  • Docker Desktop已不适用于AI开发?(K3s+Podman+Ollama本地AI栈迁移实录,含性能压测对比数据)
  • AI上下文管理利器:Upstash Context7核心原理与工程实践
  • Supermodel MCP Server:为AI编程助手构建代码知识图谱,实现深度架构感知
  • Python装饰器进阶:用functools.wraps和inspect模块打造‘透明’的AOP工具
  • Cortex-R82内存系统与AMBA ACE-Lite事务机制解析
  • 用粤嵌GEC6818开发板复刻童年经典:从零实现一个带触摸屏的C语言五子棋(附完整源码)
  • 调试PID时别再瞎调参数了!手把手教你用VOFA+上位机可视化STM32电机响应曲线
  • Unity游戏配置管理新思路:用Luban插件实现Excel到游戏数据的无缝对接(含避坑指南)
  • Go语言高性能Web服务器Kraken:架构解析与工程实践
  • 免费在线PPT制作工具:如何在浏览器中创建专业演示文稿
  • 别只盯着GitHub!技术人“八小时之外”的自我修养:我们为什么需要莎士比亚和巴赫?
  • 基于事件驱动的消息镜像插件:解耦业务与通知的配置化实践
  • Code Agent源码深度解析:从架构设计到工程实践
  • 通过账单追溯功能分析月度大模型 API 开支的具体构成
  • 手把手教你用Verilog实现一个APB3 Slave模块(附完整代码与仿真)
  • R语言geodetector包实战:用栅格数据做地理探测器,从数据清洗到结果解读全流程避坑
  • 第二部分-Docker核心原理——06. Docker 架构深度解析
  • MCP工具链兼容性检查与安全防护:mcp-lint工具全解析
  • 把Linux U盘当成本地盘:WSL2自编译内核挂载Btrfs/Ext4设备详解与性能测试
  • 怎么配合 CI/CD 流水线自动部署 Docker Compose 项目
  • 从‘哲学家就餐’到你的代码:用semaphore解决Linux多进程同步的经典思路
  • 暗黑2重制版像素级自动化:Botty深度解析与实战配置指南
  • 构建自我迭代的代码生成器:从自动化评估到智能优化闭环
  • 别再问项目了!这5个嵌入式开源宝藏,新手到高手都能用(附实战代码)
  • FreeSWITCH与ChatGPT集成:构建智能语音交互系统的实践指南