Grails 如何将css参数传递到main.gsp布局

Grails 如何将css参数传递到main.gsp布局,grails,Grails,我的布局中有main.gsp。其他几个布局都应用主布局,但每个布局都有不同的页面背景(边框、背景图像、宽度等) 在my main.gsp中,我将css样式定义为: <div class="container <g:pageProperty name="page.containerCss"/>"> 在我的嵌套GSP中,我将向上传递css以在主容器中使用: <g:applyLayout name="main"> ... <body> <co

我的布局中有main.gsp。其他几个布局都应用主布局,但每个布局都有不同的页面背景(边框、背景图像、宽度等)

在my main.gsp中,我将css样式定义为:

<div class="container <g:pageProperty name="page.containerCss"/>">

在我的嵌套GSP中,我将向上传递css以在主容器中使用:

<g:applyLayout name="main">
...
<body>
<content tag="containerCss">myCustomCssStyle</content>

...
MyCustomCSSSStyle
或其他嵌套布局可能使用:

 <content tag="containerCss">aDifferentStyle</content>
adiffertstyle

有更好的方法吗?main.gsp中唯一的变量是这个css属性,因此我认为创建5个不同版本的main.gsp不是一个简单的选择。

您可以在嵌套的gsp中设置一个变量,该变量的作用域随请求而变

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

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

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

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


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

这要视情况而定。每个版面有多少页?有多少页使用默认布局?大约有20页使用main作为父级。其中有5个独特的css类需要传递给main。该站点的其余部分都是从20中派生出来的,因此它们不是问题。