Playframework @使用Scala Temlate中的Int值进行选择
我正在使用play-2.0.3。Playframework @使用Scala Temlate中的Int值进行选择,playframework,playframework-2.0,Playframework,Playframework 2.0,我正在使用play-2.0.3。 我有一张地图,想用Int->String(使用@select之类的东西)填充下拉列表。 我知道@select只接受Seq[(String,String)。 如何重载此帮助程序以接受Seq[(Int,String)] 我已尝试做以下工作: 已将select.scala.html的源文件复制到views/mySelect.scala.html 为了我的目的编辑了它 @** *生成一个HTML选择。 * *例如: * {{{ *@select(field=myForm
我有一张地图,想用Int->String(使用@select之类的东西)填充下拉列表。
我知道@select只接受Seq[(String,String)。
如何重载此帮助程序以接受Seq[(Int,String)] 我已尝试做以下工作:
@**
*生成一个HTML选择。
*
*例如:
* {{{
*@select(field=myForm(“isDone”),options=options(“是”、“否”)
* }}}
*
*@param字段是表单字段。
*@param args一组额外属性。
*@param handler是字段构造函数。
*@
@导入助手_
@(field:field,options:Seq[(Int,String)],args:(符号,任意)*)(隐式处理程序:FieldConstructor,lang:play.api.i18n.lang)
@输入(字段,参数:*){(id,名称,值,htmlArgs)=>
@args.toMap.get(''u default).map{defaultValue=>
@默认值
}
@options.map{v=>
@v、 _2
}
}
但这似乎不起作用
戏说
')' expected but identifier found.
排队
@(field: Field, options: Seq[(Int,String)], args: (Symbol,Any)*)(implicit handler: FieldConstructor, lang: play.api.i18n.Lang)
顺便问一下,(符号,任意)后面的*是什么?游戏不喜欢它。 即使我删除了这个*,play也会说:
not found: value field
指的是同一行
请帮帮我。删除“@import helper.\uz”。每个scala模板文件都是后台函数。“@(字段:字段,选项:Seq[(Int,String)],args:(符号,Any)*)(隐式处理程序:FieldConstructor,lang:play.api.i18n.lang)”行必须是第一行。我找到了解决方案
@**
* file views/mySelect.scala.html
*
* Generate an HTML select.
*
* Example:
* {{{
* @select(field = myForm("isDone"), options = options("Yes","No"))
* }}}
*
* @param field The form field.
* @param args Set of extra attributes.
* @param handler The field constructor.
*@
@(field: Field, listOptions: Map[Integer,String], args: (Symbol,Any)*)(implicit handler: views.html.helper.FieldConstructor, lang: play.api.i18n.Lang)
@import helper._
@input(field, args:_*) { (id, name, value, htmlArgs) =>
<select id="@id" name="@name" @toHtmlArgs(htmlArgs)>
@args.toMap.get('_default).map { defaultValue =>
<option class="blank" value="">@defaultValue</option>
}
@listOptions.map { v =>
<option value="@v._1" @(if(value == Some(v._1)) "selected" else "")>@v._2</option>
}
</select>
}
@import mySelect
像这样使用它
@mySelect(
userForm("room"),
rooms, @* Map<Integer, String>* rooms*@
'_default -> Messages.get("chooseRoom"),
'_showConstraints -> false
)
连同
@import helper._
因为它会导致选项的含义不明确,因为它也是来自views.html.helper的函数options: Map[Integer,String]
@import helper._