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)
}
JavaでSeq [(String)(String)]を作成する方法がわかりません。このコレクションに列挙型クラスのペア(id、title)を入力する必要があります。
誰かがselectヘルパーの使用方法の例を教えてもらえますか?
ユーザーグループで this スレッドを見つけましたが、Kevinの回答はあまり役に立ちませんでした。
正しいタイプはSeq[(String, String)]
です。これは、文字列のペアのシーケンスを意味します。 Scalaでは、矢印を使用してペアを定義する方法があります:a->b == (a, b)
。したがって、次のように書くことができます。
_@select(field = myForm("selectField"), options = Seq("foo"->"Foo", "bar"->"Bar"))
_
ただし、ドキュメントに示されているように、選択オプションのシーケンスを構築するための別のヘルパーoptions
があるため、上記のコードを次のように書き直すことができます。
_@select(myForm("selectField"), options("foo"->"Foo", "bar"->"Bar"))
_
オプションの値がラベルと同じである場合は、コードを次のように短縮することもできます。
_@select(myForm("selectField"), options(List("Foo", "Bar")))
_
(注:Play 2.0.4では、options(List("Foo", "Bar"))
はコンパイルされないため、これを試すことができますoptions(Seq("Foo", "Bar"))
)
Javaコードからオプションを入力するには、オーバーロードされた options
関数のいずれかを使用して_Java.util.List<String>
_をパラメーターとして使用するのがより便利な方法です。 (この場合、オプション値はそれらのラベルと同じになります)または_Java.util.Map<String, String>
_を取るオーバーロードされた関数。