【前后端联调】MethodArgumentNotValidException

【前后端联调】MethodArgumentNotValidException

01 问题描述

  • 前后端联调,前端传了一个参数是null,但是这个参数设置了校验不能为null,所以报了这个错误
handleMethodArgumentNotValidException,132] - Validation failed for argument [0] in public com.ruoyi.common.core.domain.AjaxResult com.ruoyi.ms111.demos.web.CompressPictureController.putSize(com.ruoyi.ms111.entity.ImageSize) with 2 errors: [Field error in object 'imageSize' on field 'imagePath': rejected value [null]; 
codes [NotNull.imageSize.imagePath,NotNull.imagePath,NotNull.java.lang.String,NotNull]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [imageSize.imagePath,imagePath]; arguments []; default message [imagePath]]; default message [图片不能为空]] [Field error in object 'imageSize' on field 'format': rejected value [null]; 
codes [NotNull.imageSize.format,NotNull.format,NotNull.java.lang.Integer,NotNull]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [imageSize.format,format]; arguments []; default message [format]]; default message [图片格式不能为空]] 

02 问题分析

  • 前端传参的问题,前后端两边商量一下参数,统一一下数据能不能为null就好

03 问题解决

  • 后端要改的话,我使用的是lombok的@NotNull,删除就好
  • 但是对了一下需求,我打赢前端了,让他别传null就好,我这边不用改
### 尚硅谷SSM前后端联调教程及相关资料 尚硅谷提供了丰富的技术培训资源,其中包括针对SSM框架(SpringSpring MVC 和 MyBatis)的前后端联调相关内容[^1]。这些教程不仅涵盖了基础理论知识,还深入讲解了实际开发中的应用场景和调试技巧。 #### 一、SSM框架简介 SSM 是由 SpringSpring MVC 和 MyBatis 组成的一个轻量级 Java Web 开发框架组合。它通过分层设计实现了业务逻辑与数据访问的有效分离,从而提高了系统的可维护性和扩展性。在前后端联调过程中,通常会涉及以下几个方面: - **前端请求发送**:利用 AJAX 或 Fetch API 向后端发起 HTTP 请求。 - **后端接口处理**:基于 Spring MVC 的控制器方法接收并解析请求参数,返回 JSON 数据给前端。 - **数据库交互**:借助 MyBatis 实现 SQL 查询操作,并将查询结果封装为实体对象传递至视图层或响应体中。 #### 二、前后端联调的关键点 为了顺利完成 SSM 应用程序的前后端联调工作,开发者需要注意以下几点事项: 1. **统一的数据传输格式** 推荐采用 JSON 格式的字符串作为前后端之间通信的标准载体形式。这样可以简化序列化/反序列化的复杂度,并增强跨平台兼容能力。 2. **RESTful 风格的设计原则** 设计 RESTful API 可以使 URL 更加直观易懂,便于后续功能模块的扩展升级。例如定义 `/users/{id}` 表示获取指定 ID 用户的信息路径模式。 3. **异常捕获机制** 在 Controller 层面上添加全局异常处理器 `@ControllerAdvice` 注解类来集中管理可能出现的各种错误情况下的反馈信息展示方式。 4. **缓存优化策略** 如果项目存在高频读取但更新频率较低的数据,则可以通过引入 Redis 缓存进一步提升性能表现。此时需正确配置 `RedisTemplate` 并合理运用其各种方法完成键值存储检索等功能[^3]。 #### 三、推荐学习资源链接 对于希望深入了解尚硅谷有关 SSM 前后端联调教学视频的朋友来说,可以直接访问官方提供的网盘地址下载完整版课件文件进行离线观看学习[^2]。另外也可以浏览作者个人开源仓库 Gitee 上分享的一些实践案例代码片段供参考借鉴[^4]。 ```java @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserService userService; /** * 获取所有用户列表. */ @GetMapping("") public ResponseEntity<List<User>> getAllUsers() { List<User> users = userService.findAll(); return new ResponseEntity<>(users, HttpStatus.OK); } } ``` 以上是一个简单的 Rest 控制器例子演示如何暴露 GET 方法用于提供客户端请求所需的数据集合。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宣布无人罪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值