g:include を使用して、特定のページの本文コンテンツのみを含めることができるかどうか疑問に思っています。
次のようなメイン レイアウト ページがあるとします。
<html>
<head>
<title>My start page</title>
<g:layoutHead>
</head>
<body>
<g:layoutBody>
</body>
</html>
次に、メイン ページ (index.gsp)
<html>
<head>
<!-- main layout reference -->
<meta name="layout" content="main"/>
</head>
<body>
THIS IS MY INDEX BODY CONTENT WITH AN INCLUDE
<g:include controller="book" action="list"/>
<g:link controller="book" action="list">See the full list!</g:link>
</body>
</html>
そして最後に本/リストページ
<html>
<head>
<!-- main layout reference -->
<meta name="layout" content="main"/>
</head>
<body>
<table>
<g:each in="${books}">
<tr>
<td>${it.author}</td>
<td>${it.title}</td>
<td>${it.price}</td>
</tr>
</g:each>
</table>
</body>
</html>
だから私が達成したいのは、メイン ページ (index.gsp) にはブック/リスト ページで定義されたテーブルのみが含まれることです。ただし、これを試すと、定義されたhtml全体(<html>
タグとすべて)が含まれます。
どういうわけかこれを行うことは可能ですか?私は次のようなことを試しましたが<g:include controller="book" action="list" view="someView.gsp"/>
、これはうまくいきません。既存のコントローラーを再利用したい「インデックスコントローラー」にブックリストロジックを追加する必要を本当に避けたいです。
このユースケースを持っているのは私が最初ではありません。