私はGrails 3、特にREST Apiサポート機能をいじっています。
(2.5.5 からの) 新機能の 1 つは、新しい gson ビューです。
ドキュメントに従おうとしていますが、テンプレートが無視されているようです。
サンプル プロジェクトをgithubで利用できるようにしましたが、重要な部分は次のとおりです。
私のUrlMapping
:
"/books"(resources: "book")
私のBook
ドメインクラス:
class Book {
String title
static constraints = {
title(blank: false)
}
}
私からBookController
:
def show(Book book) {
respond new Book(id: 1, title: "Foo bar")
}
私のshow.gson
:
model {
Book book
}
json g.render(book)
最後に、私のbook/_book.gson
:
json {
title "Book Template"
}
この設定でブラウザに表示されるのは次のとおりです。
{"title":"Foo bar"}
いくつかの例をオンラインで探して、これを見つけました
これにより、Grails は my を無視またはバイパスし、 myshow.gson
をレンダリングするだけでよいと思います_book.gson
が、そうはなっていません。を削除しようとしshow.gson
ましたが、空白のページが表示されました。
Grailsのドキュメントを見ると、show.gson
自分のテンプレートをレンダリングする必要があると思われます_book.gson
が、それも実現していません。
クリーニングと再実行を試みましたが、同じ結果が得られます。
完全修飾テンプレート名を使用して機能させることができました。
「固定」show.gson
:
model {
Book book
}
json g.render(template: "/book/book", model: [book: book])
実行可能ですが、理想的ではなく、ドキュメントに記載されているものではありません。
ここで何が間違っているのかわかりません。何かが足りないに違いありません。