玩!带有scala的框架 - 表单seq(文本)绑定

lga*_*ior 7 forms scala playframework playframework-2.0

我正在尝试将一系列文本绑定到scala表单.到目前为止我所拥有的是以下代码:

val registerForm = Form[User](
mapping(
  "login" -> text,
  "password" -> text,
  "roles" -> seq(text)
) {
  (login, password, roles) => User(login = login, password = password, roles = roles)
} {
  user => Some((user.login, user.password, user.roles))
})
Run Code Online (Sandbox Code Playgroud)

我的HTML表单选择是:

<select id="roles" name="roles"  multiple="multiple">
    <option value="ADMIN">Admin</option>
    <option value="TESTER">Tester</option>
</select>
Run Code Online (Sandbox Code Playgroud)

登录名和密码正确绑定.我的问题是角色的seq总是空的.

我已经检查了传递给控制器​​方法的请求对象,并且(如果选择的话)两个角色都在那里 - 它们在表单对象中没有正确绑定.

有任何想法吗?

编辑:

我还在play-framework Google Group(https://groups.google.com/forum/#!topic/play-framework/KcbiF9K3d8w)上发布了我的问题并在那里收到了答案.解决方案是选择一个名称:"roles []"而不是"roles".

lga*_*ior 4

弄清楚了。

解决方案是给选择一个名称:“roles[]”而不是“roles”。