我的布局中有main.gsp。其他几个布局都应用了主要布局,但每个布局都有不同的页面背景(边框,背景图像,宽度等)。
在我的main.gsp中,我将css样式定义为:
<div class="container <g:pageProperty name="page.containerCss"/>">
在我的嵌套gsps中,我将css传递给主容器中使用:
<g:applyLayout name="main">
...
<body>
<content tag="containerCss">myCustomCssStyle</content>
或者其他嵌套布局可能会使用:
<content tag="containerCss">aDifferentStyle</content>
有更好的方法吗? main.gsp中唯一的变量就是这个css属性,所以我不认为创建5个不同版本的main.gsp是DRY选项。
答案 0 :(得分:0)
你可以在嵌套的gsp中设置一个带有范围的变量,比如
<g:set var="containerCss" value="aDifferentStyle" scope="request" />
在你的main.gsp中你可以像:
一样使用它<div class="container ${containerCss}">
我没有测试它,但它应该工作,玩得开心!
编辑:如果它不起作用,请告诉我