3

我正在尝试从 html 中的多选选项框中获取多个值。

我进入我的控制器:

/test?t=1&t=2&t=3

在控制器中,我尝试获取 int 数组:

@RequestParam(value = "t", required = true) int[] t

但是当我使用以下方法检查它时:

t.length

我只看到 1,这意味着 Spring 只得到 1 个参数,但我期望 3。有人知道吗?

4

2 回答 2

5

我认为spring不会将参数数组转换为String以外的特定类型,因此您应该尝试以下操作:

@RequestParam(value = "t", required = true) String[] t

然后用于Integer.parseInt()将 String 转换为 int。

于 2012-04-25T21:29:56.073 回答
4

这在 Spring 3.2 版本中按预期工作。我有一个方法:

@RequestMapping(value = "/blueprint", method = RequestMethod.GET)
public ModelAndView blueprint(@RequestParam(value = "blueprints", required = false) int[] blueprints)

以及使用时

http://localhost:9000/blueprint?blueprints=2&blueprints=1

或者

http://localhost:9000/nbu-portal-webapp/blueprint?blueprints=1,2

这些值正在转换为正确的 int 数组。

于 2013-03-25T21:12:19.657 回答