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

使用grails标记有条件地向html元素添加类,grails,gsp,Grails,Gsp,使用标签,您可以在gsp中执行此操作: <g:if test="${someBean?.aCondition}"> <div class="aSection"> ... </div> </g:if> 实现这一目标的好方法是什么 很简单: <div class="aSection ${someBean?.aCondition ? 'shownItem':'hiddenItem'}"> ... </div> .

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

<g:if test="${someBean?.aCondition}">
  <div class="aSection">
  ...
  </div>
</g:if>
实现这一目标的好方法是什么

很简单:

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

...

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

或者如果您根本不希望在某些情况下(例如对于自动聚焦标记)显示属性:

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


我们可以为此使用多个条件吗如何将多个条件添加到此。。它是possible@Norman这是${}中的一个groovy代码块,所以你可以这样做:${(someBean.value2==2&&someBean.value3==3)?'shownItem':'hiddenItem',但是它变得很混乱。也许您可以在控制器中执行该逻辑,并使用模型将结果传递到GSP?对于每个条件,我希望显示不同的类,而不仅仅是两个选项之间的不同类,可以这样做吗?
<div class="aSection ${someBean?.aCondition ? 'shownItem':'hiddenItem'}">
...
</div>
<input name="email" type="text" class="input-small" placeholder="Email" ${!flash.email ? 'autofocus="autofocus"':''} value="${flash.email}">