2008-12-30 16 views
2

因此,它看起來像Grails的GSP沒有include標籤(如果我錯了,請糾正我)。最接近「包含」的是使用render tag。還有include pluginGSP中的Paned組件

在我的情況,我有一個經典的左上角中間右下角頁面。頂部標題或左側將包含導航。中間是內容。右側可能包含廣告。在我的應用程序的JSP版本中,除中間的每個窗格都將位於其自己的JSP中。然後,我將包括(使用<jsp:include/>)各種面板到我的頁面中。這是GSP的正確方法嗎?

在GSP中完成此操作的首選模式是什麼?

回答

0

你說得對,渲染標籤可以完成你想要做的事情。嘗試使用模板,關鍵是用初始下劃線來命名它們。這blog post應該是有幫助的。

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

1

使用Grails 1.1開始有現在是<g:include> tag它幾乎正是你想要做什麼。

查看上述選項重新佈局/模板仍然有意義,因爲它們在大多數情況下會更有效。