grails - grails布局嵌套页面

标签 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必须独立存在,因此删除meta标签是不可能的。我尝试添加带有标志的g:if块来控制main.gsp中navbar模板的呈现,并将该标志作为模型传递给include指令,但这会导致两个navbar都消失。不知道为什么会这样。有什么建议么?

最佳答案

为什么不从page1.gsp中提取元节并将整个内容另存为单独的模板,该模板将呈现为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之前在 Controller 中设置适当的变量

关于grails - grails布局嵌套页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35510080/

相关文章:

grails - 加载插件管理器时出错:在GGTS 3.4.0上为null

grails - 包括所有 View 页面的通用布局

css - 如何使用下载的 Bootstrap 文件

grails - 在 grails 中使用 <set> 标签

grails - 如何在 grails View /站点中自动更新/刷新?

Grails WAR 文件版本

grails - Grails-如何通过gsp中的<g:set>获取特定输入的值

css - 在渲染插件中,由 css 导入的外部字体在下载 pdf 时不起作用

grails - GRAILS中的替代默认排序

未启用Grails CORS,因为没有来源