Grailsコントローラーには別のレンダリング方法「応答」があることに気づきました。
コントローラでビューをレンダリングしたい場合、respondメソッドとrenderメソッドの違いは何ですか?.
応答メソッドは、コンテンツネゴシエーションを使用して、リクエストの 'ACCEPT'ヘッダーに基づいて最も適切なコンテンツタイプで応答します。
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8, application/json
このようにして、サイトの利用者は、データの返却方法を選択できます。特定の戻り値の型を強制したい場合、これは最良のオプションではない場合があります。例:REST apiを構築していて、jsonまたはxmlのみを返したい場合、ユーザーがtest.htmlを要求した場合、望まない形式でデータが返される可能性があります。それ以外の場合、応答は、それぞれを個別にプログラミングせずに複数の戻り形式をサポートする簡単な方法です。
Renderは、データを返す形式を明示的に定義します。
(ドキュメントの例)
render Book.list(params) as JSON
render Book.get(params.id) as XML
// render with status code
render(status: 503, text: 'Failed to update book ${b.id}')
詳しくは:
応答: http://grails.org/doc/latest/ref/Controllers/respond.html レンダリング: http://grails.org/doc/latest/ref/Controllers/ render.html