2

したがって、Grails の GSP には include タグがないようです (間違っていたら訂正してください)。「含める」に最も近いのは、render タグを使用することです。include pluginもあります。

私の場合、古典的な左上中右下のペインのページがあります。上部ヘッダーまたは左側にはナビゲーションが含まれます。真ん中がコンテンツになります。右側には広告が含まれる場合があります。私のアプリの JSP バージョンでは、中央を除く各ペインが独自の JSP に含まれていました。<jsp:include/>次に、さまざまなパネルを( を使用して) 自分のページに含めます。これは GSP で正しいアプローチですか?

GSP でこれを達成するための好ましいパターンは何ですか?

4

3 に答える 3

3

ペインをビューごとにインポートまたはレンダリングする代わりに、grails が提供するレイアウト機能を (SiteMesh で) 使用することをお勧めします。すべてのページ (つまり、メニュー/コンテンツ/広告) に同じレイアウトを適用する場合は、grails-app/views/layouts/main.gsp必要なページ要素を持つように変更するだけ<g:layoutBody/>で、コントローラーによってレンダリングされる通常のビューによってタグが埋められます。main.gspレイアウトはデフォルトで提供され、すべての (スキャフォールディングおよび生成された) ビューのデフォルト レイアウトです。

広告を表示するページと表示しないページが必要な場合は、grails-app/views/layouts(例: main-ads.gsp) で新しいレイアウトを作成します。次に、広告を表示したいビューで、 を<head></head>使用してレイアウトを設定します<meta name="layout" content="main-ads.gsp"/>

http://docs.codehaus.org/display/GRAILS/Views+and+Layouts

于 2008-12-30T16:59:29.210 に答える
1

Grails 1.1から、<g:include> tagあなたが望むことをほぼ正確に実行するものがあります。

ほとんどの場合、より効率的であるため、上記のオプションのレイアウト/テンプレートを調べることは依然として理にかなっています。

于 2009-06-20T19:01:23.387 に答える
0

render タグがやりたいことを達成できることは正しいです。テンプレートで試してみてください。重要なのは、最初にアンダースコアを付けて名前を付けることです。このブログ投稿は参考になるはずです。

于 2008-12-30T13:59:42.787 に答える