如何在弹簧启动中获得查询参数数组的值? 我有这个URL http://127.0.0.1:3009/mac/view/:userid?ot-replace [0] = kin43 我需要ot-replace的价值[0] 在控制器中,我正在使用 @RequestParam(name =“ ot-replace”,必需= false)

问题描述 投票:0回答:2
ot-replace[0]

的值
在控制器中我正在使用

@RequestParam(name="ot-replace", required=false)String[] regexReplace

也尝试使用

@RequestParam(name="ot-replace", required=false)List<String> regexReplace

我总是变得无效。
不知道这里是什么问题

您的URL应该喜欢的。
http://127.0.0.1:3009/mac/view/:userId?ot-replace=kin43,value2,vlue3

然后 您可以获得一个字符串[]。

ot-replace[0]=kin43 ot-replace[1]=value2 ot-replace[2]=value3
java spring spring-mvc
2个回答
2
投票

对于未来的读者:

问题的根源在于,没有标准方法可以通过HTTP

传递数组类型的查询参数。各种框架/技术/生态系统都使用自己的方式。例如,如果是原始海报,则传递参数的以下方式;
/api/v1/anything?arrParam[0]=one&arrParam[1]=two

0
投票
在php世界中,在诸如

Laravel

Symfony等框架中使用了大量使用。它可能也用于其他地方(据我所知,像Ruby在Rails上),但这两个是我所知道的最常见的。

SO,问题在于,春季框架只是不支持此查询参数传递语法(您可以查看此源代码,
here是反应性参数解析Regexp
的示例)。

从Regexp,您可以推断出,春季框架可以处理:

/api/v1/anything?arrParam[]=one&arrParam[]=two

/api/v1/anything?arrParam=one&arrParam=two 当示意您的URL并将阵列设置在请求正文中时,请使用邮政甲基苯丙胺。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.