Grails3.0.4でfieldsプラグインを使う場合の注意点

Grails3.0.4を入れると、fieldsプラグインは、デフォルトで(?)バージョン2.0.3が入るようです。
しかし、この2.0.3ですが、なぜか1.5以降のテンプレート指定のようにいきません。

参考ページ: fieldsプラグインのリファレンス(2.1.0のスナップショット)

1.5以前とそれ以降では、テンプレート名が以下に変わると書いてありました。
_field.gsp => _wrapper.gsp
_input.gsp =>_widget.gsp
_display.gsp =>_displayWrapper.gsp
N/A => _displayWidget.gsp

しかし、2.0.3だとなんの反応もなかったので、_field.gspを作ったところ、反応しました。
1.5以降じゃないやん…。

とりあえずの解決策

ということで、bintrayでfieldsプラグインを探してみたら、2.1.0がありました。
最新すぎて怪しい感じもしましたが、とりあえずこれを入れてみました。

dependencies {
    // 略
    compile "org.grails.plugins:fields:2.1.0"
    // 略
}

こうしたら、_field.gspじゃなくて_wrapper.gspがテンプレートになりました。

fieldsプラグインのテンプレート置き場のパス

とりあえず、デフォルトだけでいうと、
grails-app/views/_fields/default以下に、_wrapper.gsp, _widget.gsp, _displayWrapper.gsp, _displayWidget.gspを作ればよさそうです。あとは、型やdomainクラスのプロパティ名などで参照されるテンプレートが変わるようです。優先順位があって、該当ファイルがなかったらどんどん検索していってなければdefault内のテンプレートが指定される模様。

型からテンプレートを変えることができれば、入力フォームも楽ができそうですね。
しかしここまで調べるのえらい時間かかった…。


タグ Grails, groovy | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です