是否可以将请求中的多个参数组合为控制器的单个参数?

时间:2019-05-09 09:19:08

标签: java spring-boot

我需要消耗一个我无法控制的请求。当客户以['a', 'b', 'c']的形式发布数组x时。

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

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

是否可以进行某种拦截以将x.index请求固定为预期的编码?我尝试编写Converter,但只能说服它将单个参数映射为另一种类型。

1 个答案:

答案 0 :(得分:4)

您可以实现自己的HandlerMethodArgumentResolver并绑定HttpServletRequest对象中的x参数。看一下:How to implement custom parameter mapping in Spring MVC

如果它是一个处理奇怪的参数约定的终结点,那么将HttpServletRequest作为方法参数并在调用服务之前在那里进行工作会更容易理解。

老实说,我宁愿强迫客户端更改请求结构。看起来好像不是通过GET传递数组的有效语法。