問題: コントローラーのアクションに、モデルを渡さずにレンダリング タグが含まれています。get で始まるアクションがあります。
grails-app/views/site/home.gsp:
homepage
SiteController.groovy:
class SiteController {
def index() {
render (view: "home")
}
def getTest() {
render "getTest"
}
}
localhost:8080/site でサイトにアクセスし、SiteController の index アクションを実行します。
期待される出力: ホームページ 実際の出力: getTest ホームページ
index の render アクションが次のように変更された場合:
render(view: "home", model: [:])
期待される出力が生成されます。
アクション名の get という単語の前に文字を追加すると、期待される出力が生成されます。
興味深いことに、IDEA では getTest() は紫に色分けされています。get という単語が先頭にある複数のメソッドがある場合、それらはすべて実行されることにも注意してください。
これは Grails 1.3.6 では発生しませんでした。これは、新しい Grails 2.2.2 プロジェクトで再現可能であり、バグのように思えます。なぜこうなった?