grails布局嵌套页面

时间:2016-02-19 16:28:10

标签: grails gsp

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

main.gsp

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

page1.gsp

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

page2.gsp

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

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

1 个答案:

答案 0 :(得分:0)

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

page1.gsp

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

page2.gsp

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

当然记得在渲染page2.gsp

之前在控制器中设置适当的变量