前言
有兄弟突然找到我,江湖救急,我以为是啥问题呢?
一看这位小兄弟也是半路出家, 没有对springboot的常用注解有过研究。
不过没大碍,还是那句话, 学习的事情,只有先知和后知
现在你看完这篇文章,你不就学会了,会了不就OK了。
正文
复现 小兄弟的 十万火急 :
模拟一个实体类,接收参数:
模拟写了一个用这个实体作为接收参数的接口:
模拟前端参数,form-data 表单格式,硬是要带前缀 :
然后这时候接收参数,接收不到:
是的,key对不上,接收不到很正常。
OK,我们开始解决一下。
MyInitBinderConfig.java
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
public class MyInitBinderConfig {
@InitBinder("specialCar")
public void initCar(WebDataBinder webDataBinder) {
webDataBinder.setFieldDefaultPrefix("param.");
}
@InitBinder("user")
public void initUser(WebDataBinder webDataBinder) {
webDataBinder.setFieldDefaultPrefix("user.");
}
}
代码简析:
然后再在接口上面做下手脚:
ok,再重启一下,看看效果:
可以看到识别出来了,准备做处理了:
效果很OK:
好了该篇就到这。
其实 WebDataBinder 配合InitBinder 针对这种表单方式的入参还能玩很多东西。
针对参数类型做 参数转换、参数处理、参数校验等等,不过其实不是非常常用,不一一介绍。
可能有人会想,会不会还有一种十万火急的场景,不是from-data表单传参,但是前端硬是给咱们加了前缀传过来呢?
post json的那种方式呢?
其实说白了不就是key没对上么, 处理一下就好,当然这种情况,我其实很早就介绍过了,自取吧。
Springboot 一个注解搞定返回参数key转换 【实用】_小目标青年的博客-CSDN博客_springboot返回结果时自定义结果key