grails布局嵌套页面

grails布局嵌套页面,grails,gsp,Grails,Gsp,我试图将一个gsp包含到另一个gsp中,但避免在布局中呈现两次的导航栏。下面是我试图尽可能简短地说明这一点的尝试 美因普惠制 ... <g:render template="dashboardNavbar"></g:render> ... 。。。 ... 第1页普惠制 ... <meta name="layout" content="main"/> ... ... <meta section for page1/> <g:render

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

美因普惠制

...
<g:render template="dashboardNavbar"></g:render>
...
。。。
...
第1页普惠制

...
<meta name="layout" content="main"/>
...
...
<meta section for page1/>
<g:render template="contentDuplicatedInGsp1AndGsp2"></g:render>
...
。。。
...
第2页普惠制

...
<meta name="layout" content="main"/>
<g:include action="page1"></g:include>
...
...
<meta section for page2/>
<g:render template="contentDuplicatedInGsp1AndGsp2"></g:render>
...
。。。
...

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

为什么不从page1.gsp中提取元节,并将整个内容保存为单独的模板,该模板将呈现在page1或page2中:

第1页普惠制

...
<meta name="layout" content="main"/>
...
...
<meta section for page1/>
<g:render template="contentDuplicatedInGsp1AndGsp2"></g:render>
...
。。。
...
第2页普惠制

...
<meta name="layout" content="main"/>
<g:include action="page1"></g:include>
...
...
<meta section for page2/>
<g:render template="contentDuplicatedInGsp1AndGsp2"></g:render>
...
。。。
...

当然记得在呈现page2之前在控制器中设置适当的变量。gsp

谢谢@michal。我没有不同的内容要展示。只是我想完全避免显示,因为meta标记中的头显示了两次。我需要两个标签在各自的页面中显示,但当其中一个标签包含在另一个标签中时,则只包含在另一个标签中。@AnupTripathi这正是我为您编写的伪代码。这两个页面的内容是相同的,唯一的区别是它们的元标签部分。