飞道的博客

Springboot @InitBinder处理from-data表单传参,指定参数默认新增前缀

365人阅读  评论(0)

前言

 有兄弟突然找到我,江湖救急,我以为是啥问题呢?

 

一看这位小兄弟也是半路出家, 没有对springboot的常用注解有过研究。 


不过没大碍,还是那句话, 学习的事情,只有先知和后知 

 现在你看完这篇文章,你不就学会了,会了不就OK了。

 

 正文

复现 小兄弟的 十万火急 :

模拟一个实体类,接收参数:

 模拟写了一个用这个实体作为接收参数的接口:

模拟前端参数,form-data 表单格式,硬是要带前缀 :

 

 然后这时候接收参数,接收不到:

 

是的,key对不上,接收不到很正常。

OK,我们开始解决一下。

MyInitBinderConfig.java 


  
  1. import org.springframework.web.bind.WebDataBinder;
  2. import org.springframework.web.bind.annotation.ControllerAdvice;
  3. import org.springframework.web.bind.annotation.InitBinder;
  4. @ControllerAdvice
  5. public class MyInitBinderConfig {
  6. @InitBinder("specialCar")
  7. public void initCar (WebDataBinder webDataBinder) {
  8. webDataBinder.setFieldDefaultPrefix( "param.");
  9. }
  10. @InitBinder("user")
  11. public void initUser (WebDataBinder webDataBinder) {
  12. webDataBinder.setFieldDefaultPrefix( "user.");
  13. }
  14. }

代码简析: 


 

然后再在接口上面做下手脚:
 

 

ok,再重启一下,看看效果:

可以看到识别出来了,准备做处理了: 

效果很OK:

 

好了该篇就到这。

其实 WebDataBinder 配合InitBinder 针对这种表单方式的入参还能玩很多东西。
针对参数类型做 参数转换、参数处理、参数校验等等,不过其实不是非常常用,不一一介绍。

可能有人会想,会不会还有一种十万火急的场景,不是from-data表单传参,但是前端硬是给咱们加了前缀传过来呢?

post json的那种方式呢?

其实说白了不就是key没对上么, 处理一下就好,当然这种情况,我其实很早就介绍过了,自取吧。

Springboot 一个注解搞定返回参数key转换 【实用】_小目标青年的博客-CSDN博客_springboot返回结果时自定义结果key


转载:https://blog.csdn.net/qq_35387940/article/details/128564805
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场