我在让 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/