我有一个布局文件。我希望在每个继承该布局的页面中都有这样的东西:
Just ${step} Steps Away From The Awesome!!
因此,在我的布局中,我使用占位符step
定义了上面的字符串。我不想从控制器传递此占位符的值。我希望在继承此布局的gsp中定义它。
我正在寻找像<g:set var="step" value="1"/>
(或2或3,取决于gsp)的东西。但是如果我这样定义它就行不通。那么如何取消引用&#34; step&#34;的价值呢?在每个扩展布局内?
答案 0 :(得分:0)
实现此目标的最佳方法之一是使用content blocks
和page properties
。这些都是源自Sitemesh的功能。
我假设您只想在使用布局的页面提供值时有条件地包含此信息。因此,在我的示例中,我将其快速if
检查。
在你的布局中:
<g:if test="${pageProperty(name: 'page.step')}">
Just <g:pageProperty name="page.step" /> Steps Away From The Awesome!!
</g:if>
然后,在使用布局的任何页面中,您都可以包含变量步骤的内容
<content tag="step">3</content>
请注意,content
标记中的值可以是您喜欢的任何值。它将在呈现页面时进行评估。