playframework-2.0 - 多选选择 - 玩 2.0?

标签 playframework-2.0

我在让 Multiselect 与我的 Play 2.0 应用程序一起工作时遇到了很大的麻烦。

我尝试了在 google 上找到的不同解决方案,但没有一个适用于 2.0.1。

您是否有任何指南或提示可以让多选工作?

html...

<select multiselect="multiselect" ... name="groupIds[]"> ... </select>

表格
class UserAdminForm{

public Long[] groupIds;

}

后来在请求处理程序中......
Form<UserAdminForm> form = uform.bindFromRequest(); // Bam , [NumberFormatException: For input string: ""] 

有没有处理 POST 数组的好方法?

最佳答案

我遇到了同样的问题,我认为多选表单助手是 Play 2 中的一个错误。无论如何,我通过将选择重命名为 @name[] 来修复它。所以你为ex创建了一个模板。 selectMultiple.scala.html 包含此代码:

@(field: play.api.data.Field, options: Seq[(String,String)], args: (Symbol,Any)*)(implicit handler: helper.FieldConstructor, lang: play.api.i18n.Lang)

@values = @{ field.indexes.map { v => field("[" + v + "]").value } }

@helper.input(field, args:_*) { (id, name, value, htmlArgs) =>
<select id="@id" name="@(name)[]" @toHtmlArgs(htmlArgs) multiple="multiple">

@args.toMap.get('_default).map { defaultValue =>
    <option class="blank" value="">@defaultValue</option>
}
@options.map { v =>
<option value="@v._1" @{if(values.contains(Some(v._1))) "selected" else ""} >@v._2</option>
}
</select>
}

在您的模型中有一个用于映射组件的列表,您可以在 html 页面中使用此模板,例如:
@selectMultiple(
    myForm("groupsId"),
    myOptions,
    '_label -> "My MultiSelect"          
  )

希望这对你有帮助! (请注意,我正在使用 Play for Scala)

关于playframework-2.0 - 多选选择 - 玩 2.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502490/

相关文章:

scala - Cassandra 切片查询不适用于复合键

AngularJS $ resource-无法将数组作为参数之一传递

mysql - 无法使用 Play for Scala 和 Anorm 从表单中插入值

java - Play Framework 2.2.1 Ebean 3个表之间的多对多关系

mysql - 在 dev/prod 中使用 Mysql,在测试中使用 H2

Scala、Play、Akka、Websocket : how to pass actor messages through websocket

scala - 如何在 play 2.1 中处理 JSON 解析中的可选字段

forms - 如何为 play2 的表单定义 StopOnFirstFail dsl?

json - Play 案例类的json读取和默认参数?

java - Play 框架 - 平衡异步和非阻塞