「@helper.inputText」こいつはすごい!便利!
Htmlふつうに書いててよくイージーミスする箇所が適切に補助されるイメージ。
ヘルパーたちはscalaで定義されているので、scala音痴な自分にはあまり中身のことは
わからないけど、なんとなくフィーリングで読んでも分かる簡潔さでした。
目次
formタグを使おう!
これでconf/routesの規定どおりのパラメーターを持つフォームを作ってくれる。
// controller
return ok(index.render(new Form
// template
@helper.form(action = routes.Application.submit()) {}[/java]
[/java]
GET /submit controllers.Application.submit()[/java]
idやらの属性も自由に指定できる。記述方法が独特?なんだろうこれ。
@helper.form(action = routes.Application.submit(),
‘id -> “myForm”){}
[/java]
[/java]
アポストロフィーが1つ必要になるっぽい。idの前に1つついてる。「’id」みたいに。
個人的にはアポストロフィーは閉じたくなるけど、閉じるとコンパイルエラーが起きる。
inputの記載方法!
//これはテンプレート引数
@(myForm: Form[User])
@helper.form(action = routes.Application.submit()) {
@helper.inputText(myForm(“username”))
@helper.inputPassword(myForm(“password”))
}
[/java]
[/java]
inputが普通に出力されるのではなくて、dlタグの子要素として出力される点に注目。
これが何気に便利。dlタグの使い方がこれで正しいのかは分からないけど、一連の定義だと
思えば意味的にもdlタグは正しいのかも。
ラベルも出力してくれている。このラベルとかはもっと柔軟に変えることができるのですが、
それは次回。とりあえず基本的な記述方法を染みこませる方が先決かと。
ちなみにここでもさっきのformタグと同じように好きな属性を追加することができる。例の
独特な記述方法でもって。
@helper.inputText(myForm(“username”), ‘id -> “username”,
‘size -> 30)[/java]
[/java]
inputText.scala.htmlの一部抜粋すると、以下のように定義されていることがわかる。
}[/java]
inputTextの第一引数「myForm」が上記のfieldに当たる。他はargs、だと思う。
inputText以外にもいろいろ定義されているので、全部書いておきます。
ヘルパータグ | 定義ファイルの一部抜粋 |
---|---|
inputDate.scala.html |
[java toolbar=”false”]
@input(field, args:_*) { (id, name, value, htmlArgs) => }[/java] |
inputFile.scala.html |
[java toolbar=”false”] @input(field, args:_*) { (id, name, value, htmlArgs) =>
} [/java] |
inputPassword.scala.html |
[java toolbar=”false”] @input(field, args:_*) { (id, name, value, htmlArgs) =>
}[/java] |
inputRadioGroup.scala.html |
[java toolbar=”false”]
@input(field, args:_*) { (id, name, value, htmlArgs) => } [/java] |
inputText.scala.html |
[java toolbar=”false”] @input(field, args:_*) { (id, name, value, htmlArgs) =>
} [/java] |
アセスメント
- formタグの使い方が分かる
- input type=textの出力方法が分かる
公式ドキュメントはForm template helpersでした。
次回もこれの続き。もうちょっと複雑になる。