0

我的布局中有 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 选项。

4

1 回答 1

0

您可以在嵌套的 gsp 中根据要求设置一个具有范围的变量,例如

 <g:set var="containerCss" value="aDifferentStyle" scope="request" />

在您的 main.gsp 中,您可以像这样使用它:

<div class="container ${containerCss}">

我没有测试它,但它应该可以工作,玩得开心!

编辑:如果它不起作用,请告诉我

于 2013-11-14T23:47:55.693 回答