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

news2024/9/22 5:44:24

前言

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

 

一看这位小兄弟也是半路出家, 没有对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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

纳米软件分享:光伏逆变器ATE测试系统,逆变器测试解决方案

光伏并网逆变器(以下简称“逆变器”)是光伏发电系统的核心部件之一,其主要功能是将光伏阵列的直流逆变为符合电网接入要求的交流电并入电网。并网逆变器ATE测试平台,主要是模拟光伏阵列特性输入的直流电源、模拟电网电源、系统控制…

Java垃圾分类查询管理系统源码+数据库,基于SpringBoot+mybatis-plus,垃圾分类查询及预约上门回收

垃圾分类查询管理系统 完整代码下载地址:Java垃圾分类查询管理系统源码数据库 1.介绍 垃圾分类查询管理系统,对不懂的垃圾进行查询进行分类并可以预约上门回收垃圾。 让用户自己分类垃圾, 按国家标准自己分类, 然后在网上提交订…

java学习之main方法

目录 一、main方法的注意事项 二、在IDEA中传入参数 一、main方法的注意事项 形式:public static void main(String[] args){},main方法是一个静态方法,访问修饰符是:public,形参是String数组 args 注意事项&#xf…

go语言--函数

package mainimport "fmt"func main(){//功能: 10 20var num1 int 10var num2 int 20var sum int 0sum num1sum num2fmt.Println(sum) }为什么使用函数 提高代码的复用性,减少代码冗余, 代码维护性也提高了 函数的定义 为完成摸一个功能的程序指令(…

IRCNN-FPOCS 文章解读

1、论文概述 1)待解决的问题:地震道数据缺失(野外地震数据的质量往往受到地质环境或设备参数的影响,这些数据可能在空间上不连续,导致地震痕迹缺失,也称为下采样观测) 2)目的&…

从菜鸟到团队协同大神:产品经理工具技能修炼

现在,自雇人士和自由职业者越来越普遍。受环境影响,员工们正在放弃朝九晚五的工作,转而采用更灵活的远程工作,另一方面,随着办公数字化转型、远程办公的需求强烈、在线协协同管理工具飞项等一批知名互联网工具如雨后春…

c#入门-捕获变量

局部变量捕获 局部函数,匿名函数,可以直接在函数体内使用局部变量。 如果作为委托使用,传递给别人。可能在别人使用委托的时候,这些局部变量的作用域就已经消失了。 因此,编译器会对这些变量做出特殊的操作&#xff…

优维低代码:I18n 国际化

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。 连载…

第8季3:使用字库字符实现区域显示

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、代码框架分析 在第8季2:OSD实验演示与代码分析中,我们分析了SAMPLE_RGN_CreateVideoRegion函数,该函数完成了左下角的logo区域显示、右下角的时间区域显示&a…

Ubuntu18.04安装教程

Ubuntu18.04安装教程# 阿里云源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates ma…

【Vue+Springboot】综合程序设计后端部分实现(含跨越访问)

文章目录1、功能展示2、前端部分:VueAPI3、后端部分:Springboot1、功能展示 大致分为用户管理,商品管理,收藏管理,购物车管理,订单管理五个模块。 2、前端部分:VueAPI Vue 使用 axios 库进行网…

如何在Unity中实现MVC模式?

MVC是什么? ​ MVC即Model View Controller,是模型(model)【数据层】-视图(view)【表现层】-控制器(controller)【逻辑层】的缩写。主要应用于网站开发,在游戏开发方面,因为不同游戏的需求、功能不尽相同&…

数字化转型迫在眉睫,企业应该如何面对?

火热的数字化转型,在国企、央企公布数字化转型规划后,进一步向各行各业开始扩散,吸引了很多对于数字化并不熟悉的企业。这些企业大多没有一个确定的目标,只是想要让企业完成转型改革,所以对于怎样做没有什么好的规划。…

Unity3d C#实现基于SocketIOUnity的与后端(node.js为例)Socket通信功能(含工程)

#前言 该功能主要是项目上的需求,按后端的需求就是我们通过SocketIO进行通信,之前游戏通信功能大多是基于原始的Socket进行封装,需要对包体进行设计,还需要粘包拆包等系列操作,属实有点麻烦。这次尝试了SocketIOUnity的…

Exynos_4412——RTC实验

目录 一、ADC小作业 二、RTC简介 三、Exynos_4412下的RTC控制器 四、RTC中的寄存器 五、RTC编程 六、RTC小作业 一、ADC小作业 电压在1501mv~1800mv时,LED2、LED3、LED4、LED5点亮 电压在1001mv~1500mv时,LED2、LED3、LED4点亮 电压在501mv~1000m…

什么是芯片老化测试?芯片老化测试系统NSAT-2000解决方案

随着半导体电子技术的进步,老化测试已成为保证产品质量的关键流程。除了半导体元件外,PCB、IC 和处理器部件也都需要在老化条件下进行测试。本篇文章纳米软件Namisoft小编将带大家分享一下关于芯片老化测试系统的相关知识。 一、什么是芯片老化测试&…

开发工具篇第十二讲:常用开发库 - Lombok工具库详解

开发工具篇第十二讲:常用开发库 - Lombok工具库详解 Lombok是一款非常实用Java工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。实际上我并不推荐使用Lombok(不主动使用它&…

CANoe测试TC8

OPEN联盟发布的TC8是目前行业内关于车载以太网的标准测试规范之一。 CANoe环境需要硬件和软件: 硬件是CANoe设备,用来连接电脑和DUT,TC8测试的是以太,那么CANoe设备必须支持以太才行,目前VN5640以上都是支持的。 软件需要安装CANo…

对git rebase 和git merge的理解

一、是什么 在使用 git 进行版本管理的项目中,当完成一个特性的开发并将其合并到 master 分支时,会有两种方式: git mergegit rebase git rebase 与 git merge都有相同的作用,都是将一个分支的提交合并到另一分支上,…

物联网技术在地下综合管廊智能化建设中的应用实例分析

摘 要:物联网是21世纪传感技术、通信技术、信息技术的应用大集成利用物联网技术实现地下综合管廊的智能化管理符合经济和城市规划发展的需要分析了物联网技术的特点及地下综合管廊建设中物联网技术的应用并结合物联网技术在地下综合管廊建设的应用实例对物联网技术在地下综合…