Spring MVC 接收参数总是多一个逗号??

普通的表单提交
图片说明

可是后端接收到的参数就多了个逗号??图片说明

直接先看后端提交。打开f12 看network 找到你提交的请求,看是否前端就多了个,号 spring mvc 不会给你自动增加。
假设前端未传递,可以检查下license 这个bean中的set方法是否有自定义多加个,号。

由于spring boot(Spring MVC)请求校验比较严格,从老版本的jetty微服务servlet 请求改造过程中发现参数处理莫名多出一些符号。经过排查作如下总结:
1、如果请求方的请求头是text/plain等时,spring boot服务接口没有设置接受请求头,比如@RequestMappin默认application/x-www-form-urlencoded;charset=UTF-8进行参数处理,通过@RequestBody注解获取字符请求体时,请求体后面会多一个=号,因为spring boot 默认按form表单进行参数处理,把请求体进行url参数方式(key=value&key2=val2)进行处理,所以请求体会多出等号。
2、结构form参数时候,存在多个相同参数时候,会把参数按逗号进行拼接,如key=value1,value2 加入一个value为空值情况时候key=value, 接受参数就处理多余字符。所以一定小心传参。

3、当@RequestMappin 中设置Consumer 来匹配请求头,不符合对应请求头请求,可能会请求失败,或者请求体接受时候,会进行截段等处理。


作者:仰望天空YF
来源:CSDN
原文:https://blog.csdn.net/yunfeng482/article/details/79775071
版权声明:本文为博主原创文章,转载请附上博文链接!