在Grails 2.3.7中,有没有办法在GSP页面中使用表达式向body元素添加属性?在下面的代码中,p
元素中的表达式有效,但body
元素中的相同表达式会导致错误:期待' ='在属性名称之后($ {raw(' this =" that"')})。
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body ${raw('this="that"')}>
<p ${raw('this="that"')}>Hello!</p>
</body>
</html>
我尝试在布局中执行此操作,并使用pageProperty
从原始页面中选取相应的属性,但在页面布局中body
元素上出现相同的错误好。
替换属性值确实适用于body
这样的元素:
<body this="${that}">
但这不会起作用,因为如果没有值,我根本不希望该属性出现。
答案 0 :(得分:3)
问题是,body标签被<g:layoutBody />
标签取代,因此无法像这样设置。
一种解决方案是用于在sitemesh布局中设置不同的内容。 示例here:
<html>
<head>
<g:layoutHead/>
</head>
<body class="${pageProperty( name:'body.class' )}">
<g:layoutBody/>
</body>
</html>