当前位置: 首页 > 面试题库 >

绑定@RequestParam中的列表

宰父夕
2023-03-14
问题内容

我以这种方式从表单发送一些参数:

myparam[0]     : 'myValue1'
myparam[1]     : 'myValue2'
myparam[2]     : 'myValue3'
otherParam     : 'otherValue'
anotherParam   : 'anotherValue' 
...

我知道我可以通过添加像这样的参数来获取控制器方法中的所有参数

public String controllerMethod(@RequestParam Map<String, String> params){
    ....
}

我想将参数myParam [](而不是其他参数)绑定到列表或数组(任何保持索引顺序的东西),因此我尝试使用以下语法:

public String controllerMethod(@RequestParam(value="myParam") List<String> myParams){
    ....
}

public String controllerMethod(@RequestParam(value="myParam") String[] myParams){
    ....
}

但是它们都没有绑定myParam。即使将值添加到地图,它也无法绑定参数:

public String controllerMethod(@RequestParam(value="myParam") Map<String, String> params){
    ....
}

是否有任何语法可以将某些参数绑定到列表或数组,而不必将对象创建为带有列表属性的@ModelAttribute?

谢谢


问题答案:

中的数组@RequestParam用于绑定多个相同名称的参数:

myparam=myValue1&myparam=myValue2&myparam=myValue3

如果您需要绑定@ModelAttribute样式索引的参数,我想您@ModelAttribute还是需要。



 类似资料:
  • 目标是发送一个HTTP GET请求,其中包含表示枚举值的字符串列表问卷主题,然后使用这些参数选择正确主题的问题。我还添加了一个自定义转换器来将接收到的字符串转换为我的枚举。我的问题是当我在方法中调试时,“主题”总是为空。 这是我当前的RESTendpoint: 当我通过带有以下签名的方法传递单个主题时,我能够得到我的问题: 因此,将字符串转换为枚举似乎不是问题。 我尝试发送多个请求,但在endpo

  • 它似乎试图访问该控制器上的值,而我正在尝试将值发送到该控制器,并尝试使用选定的值创建相同的对象 有谁能告诉我,我哪里做错了,我需要注意什么 编辑 我不确定我做错了哪件事,似乎是我的JSTL表达式不对

  • 我想根据ViewBag值过滤下面加载的ProductData dropdownlist,比如ViewBag。类别需要传递给GetProductData()的viewbag值。我怎样才能做到这一点。非常感谢。 控制器: //需要基于viewbag进行过滤。类别值

  • 我想在不同的列表中加入多个向量,并输出一个矩阵列表。其思想是,列表中具有相同名称的所有项目,例如所有项目,通过行作为矩阵连接起来。增加的复杂性是,这些向量可以具有不同的长度,因此实现起来并不简单;矩阵中缺少的值可以附加s。 输入列表: 我希望获得的理想输出是一个列表,其中矩阵的数量与唯一列表项的数量相同,其中每个矩阵由行绑定的不同长度的向量组成: 我将如何编写一个函数,它也可以扩展到合并具有不同长

  • 我永远不知道会有多少游戏上市。我正在试图弄清楚如何设置绑定,以便控制器可以在表单提交后访问这些字段。 有人能给我指引正确的方向吗。我正在使用Spring MVC 3.1

  • 起初我是一个初学者 我看过很多教程,读过很多例子,甚至试图从JLS来理解这个主题,但我仍然有一些困惑或误解。 让我给你看我看不懂的问题。