form().bindFromRequest() 与数组值

Cyr*_* N. 5 playframework-2.0

<select name="items" multiple>在前端有一个,form().bindFromRequest()在后端使用,然后使用 DynamicForm。

但这里有一个问题:

DynamicForm form = form().bindFromRequest();
form.field("items").value(); // Only return one value !
Run Code Online (Sandbox Code Playgroud)

如何获取所有提交的值?如果可能的话,不必经历request().body().asFormUrlEncoded().get("items")

小智 4

绑定数组值需要在请求中正确命名值。参数名称应以“[]”结尾才能绑定为数组(列表)值。

在你的 HTML 中你应该有:

<select name="items[]" multiple>
Run Code Online (Sandbox Code Playgroud)

在 Form 类中将其添加为:

public class ExampleForm {
    public List<Integer> items;
}
Run Code Online (Sandbox Code Playgroud)

我知道这不能解决 DynamicForm 问题,但它是更优雅的解决方案。