以 HTML 形式传递字符串数组并提交给 Java Spring Controller?

Sum*_*aya 7 html java arrays spring

我很难弄清楚如何将一组值传递给RequestParam.

我的 HTML 表单如下:

<form method="post">
    <input type="text" name="numbers[]">
    <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

我的 Spring 控制器如下:

@RequestMapping(value="/send", method = RequestMethod.POST)
public void sendMessage(String to[]) {
    for(String number: to) {
        System.out.println(number);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,它显示一个错误:

...不适用于参数

Adr*_*lat 5

问题是您的输入只是一个字符串字段,因此 Spring 将其转换为字符串,而不是字符串数组。

一个解决方案是在您的表单中有多个具有相同名称的输入。Spring 自动创建数组并将其传递给控制器​​。

<form method="post">
  <input type="text" name="number">
  <input type="text" name="number">
  <input type="text" name="number">
  <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

控制器中的相应方法是:

public void foo(@RequestParam("number[]") List<String> to) {
    for(String number : to) {
        System.out.println(number);
    }
}
Run Code Online (Sandbox Code Playgroud)