我需要消耗一个我无法控制的请求。当客户以['a', 'b', 'c']
的形式发布数组x
时。
我实际上收到的是:
?x.0=a&x.1=b&x.2=c
我认为正确的编码是?x=a&x=b&x=c
,但如上所述,我无法控制请求。
是否可以进行某种拦截以将x.index
请求固定为预期的编码?我尝试编写Converter
,但只能说服它将单个参数映射为另一种类型。
答案 0 :(得分:4)
您可以实现自己的HandlerMethodArgumentResolver
并绑定HttpServletRequest
对象中的x
参数。看一下:How to implement custom parameter mapping in Spring MVC。
如果它是一个处理奇怪的参数约定的终结点,那么将HttpServletRequest
作为方法参数并在调用服务之前在那里进行工作会更容易理解。
老实说,我宁愿强迫客户端更改请求结构。看起来好像不是通过GET传递数组的有效语法。