首页 > 解决方案 > 我可以将请求中的多个参数组合成控制器的单个参数吗?

问题描述

我需要处理一个我无法控制的请求。当客户端将数组发布['a', 'b', 'c']x.

我实际收到的是: ?x.0=a&x.1=b&x.2=c

我认为正确的编码是,?x=a&x=b&x=c但如前所述,我无法控制请求。

我可以做某种拦截来将我的x.index请求修复为预期的编码吗?我试过写一个Converter,但我只能说服它把一个参数映射到另一种类型。

标签: javaspring-boot

解决方案


您可以实现自己的并从对象HandlerMethodArgumentResolver绑定x参数。HttpServletRequest看一下:如何在 Spring MVC 中实现自定义参数映射

如果它是处理奇怪参数约定的单个端点,那么将其HttpServletRequest作为方法参数并在调用服务之前在那里完成工作会更具可读性。

老实说,我宁愿强迫客户改变请求结构。它看起来不像使用 GET 传递数组的有效语法。


推荐阅读