【问题标题】:Binding a list in @RequestParam includes square brackets在@RequestParam 中绑定列表包括方括号
【发布时间】:2017-04-27 14:01:13
【问题描述】:

当我将列表("EN", "IT") 作为@RequestParam 传递时,它会将其绑定为(["EN", "IT"])。所以第一个元素是(["EN,第二个元素是"IT"]

你怎么解释这个?

@RequestMapping(value = "/countRequests", method = RequestMethod.GET)
public ResponseEntity<BigInteger> getCountRequests(
   @RequestParam("languages") List<String> languages)

【问题讨论】:

  • 我通过了(“EN”、“IT”)并且没有包含正方形。它绑定为第一个(“EN”,第二个“IT”),因为它使用逗号评估单独的项目。春季 4.0.1 发布。

标签: java spring spring-mvc data-binding collections


【解决方案1】:

您不需要使用[] 语法来传递数组(或列表)。

尝试以这种方式执行您的请求:

/countRequests?languages=EN,IT

这样 Spring MVC 应该正确绑定你的参数。试一试。

另一种方法是使用这种语法:

/countRequests?languages[]=EN&languages[]=IT

【讨论】:

  • @davioooh,地图呢?将 Map 例如作为 @RequestParam 传递的语法是什么?
  • @davioooh 知道如何让它适用于应该被解析为List&lt;List&lt;String&gt;&gt;的二维输入
猜你喜欢
  • 1970-01-01
  • 2023-03-20
  • 2018-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多