圣杯布局嵌套页面



我试图将一个 gsp 包含在另一个 gsp 中,但避免我在布局中呈现两次的导航栏。以下是我试图尽可能简要地展示这一点的尝试。

主.gsp

...
<g:render template="dashboardNavbar"></g:render>
...

页1.gsp

...
<meta name="layout" content="main"/>
...

页2.gsp

...
<meta name="layout" content="main"/>
<g:include action="page1"></g:include>
...

Page2 需要独立存在,因此删除元标记是不可能的。我尝试添加带有标志的 g:if 块来控制 main.gsp 中导航栏模板的呈现,并将该标志作为模型传递给 include 指令,但这会导致两个导航栏消失。不知道为什么会这样。有什么建议吗?

为什么不从 page1.gsp 中提取元部分并将整个内容保存为单独的模板,该模板将呈现第 1 页或第 2 页:

页1.gsp

...
<meta section for page1/>
<g:render template="contentDuplicatedInGsp1AndGsp2"></g:render>
...

页2.gsp

...
<meta section for page2/>
<g:render template="contentDuplicatedInGsp1AndGsp2"></g:render>
...

当然记得在渲染 page2.gsp 之前在控制器中设置专有变量

最新更新