0

私は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])

実行可能ですが、理想的ではなく、ドキュメントに記載されているものではありません。

ここで何が間違っているのかわかりません。何かが足りないに違いありません。

4

2 に答える 2