我有一个layout.gsp
我为可能显示在任何页面上(或可能不显示)的控件(例如横幅)定义一些标记的地方。
<g:set var="showBanner" value="${...}" scope="page|request|flash|session"/>
<!-- Some more logic that may g:set showBanner var -->
<g:layoutBody/>
<g:if test="${[flash|request|???].showBanner}">
<div id="banner">...</div>
</g:if>
这个想法是让由 呈现的页面<g:layoutBody>
决定是否需要横幅。因此,一页可能决定始终显示横幅,如下所示 -page1.gsp:
<g:set var="showBanner" value="${true}" scope="page|request|flash|session"/>
另一个页面决定永远不会在其上显示横幅,如下所示 -page2.gsp:
<g:set var="showBanner" value="${false}" scope="page|request|flash|session"/>
不幸的是,这种方法对我不起作用。我尝试了所有不同的scope
属性组合,但仍然无法在子页面中覆盖它。
这是一般的错误方法还是我错过了一些细节?