使用grails标记有条件地向html元素添加类

时间:2009-11-20 19:52:40

标签: grails gsp

使用标签,您可以在gsp中执行此操作:

<g:if test="${someBean?.aCondition}">
  <div class="aSection">
  ...
  </div>
</g:if>

我真正想做的是添加第二个“类”,其中包含'display:none'或'display:block'属性,基于'$ {someBean?.aCondition}'的值。

最终的HTML会这样:

<div class="aSection hiddenItem">
...
</div>

(如果$ {someBean?.aCondition}为真,则div将为其类设置'shownItem')

相应的css:

.shownItem
{
  display: block;
}
.hiddenItem
{
  display: none;
}

实现这一目标的好方法是什么?

2 个答案:

答案 0 :(得分:18)

足够简单:

<div class="aSection ${someBean?.aCondition ? 'shownItem':'hiddenItem'}">
...
</div>

您可以在html属性中使用$ {}块,没问题,只是确保不要在表达式块中使用任何双引号,因为这会混淆事情。

答案 1 :(得分:6)

或者,如果您不希望某些(例如自动对焦标签)条件显示该属性:

<input name="email" type="text" class="input-small" placeholder="Email" ${!flash.email ? 'autofocus="autofocus"':''} value="${flash.email}">