Ult*_*ter 21 scala playframework-2.0
我正在尝试使用views.html.helper.select(这里的文档).我不知道scala,所以我正在使用java.我需要将Seq [(String)(String)]类型的对象传递给模板吗?就像是:
@(fooForm:Form[Foo])(optionValues:Seq[(String)(String)])
@import helper._
@form(routes.foo){
@select(field=myForm("selectField"),options=optionValues)
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何在java中创建Seq [(String)(String)].我需要从我的枚举类中填充这个集合(id,title).
有人可以告诉我一些如何使用选择助手的示例吗?
我在用户组中找到了这个帖子,但Kevin的答案对我没有多大帮助.
Jul*_*Foy 40
正确的类型是:Seq[(String, String)].它表示一系列String.在Scala中,有一种使用箭头定义对的方法:a->b == (a, b).所以你可以写例如:
@select(field = myForm("selectField"), options = Seq("foo"->"Foo", "bar"->"Bar"))
Run Code Online (Sandbox Code Playgroud)
但是,如文档中所示,还有另一个帮助程序来构建选择选项的序列:options,因此您可以将上面的代码重写为:
@select(myForm("selectField"), options("foo"->"Foo", "bar"->"Bar"))
Run Code Online (Sandbox Code Playgroud)
如果您的选项值与其标签相同,您甚至可以将代码缩短为:
@select(myForm("selectField"), options(List("Foo", "Bar")))
Run Code Online (Sandbox Code Playgroud)
(注意:在Play 2.0.4 options(List("Foo", "Bar"))中没有编译,所以你可以试试这个options(Seq("Foo", "Bar")))
要从Java代码中填充选项,更方便的方法是使用options带有java.util.List<String>as参数的重载函数(在这种情况下,选项值将与其标签相同)或使用a的重载函数java.util.Map<String, String>.
| 归档时间: |
|
| 查看次数: |
20760 次 |
| 最近记录: |