我有一個layout.gsp
,我在其中定義了可能在任何頁面(或可能不顯示)上顯示的控件(比如標題)的標記。替代Grails <g:set>變量的值在<g:layoutBody>
<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
屬性的所有不同組合,並且仍然無法在子頁面中重寫它。
這是一個錯誤的方法,或者我錯過了一些細節?