pageProperty和内联IF条件

时间:2012-01-12 17:22:42

标签: grails if-statement gsp

我正在使用pageProperty函数来驱动我布局中的一些菜单。我需要根据meta.nav pageProperty返回的内容将特定类应用于链接。现在,它看起来像这样......

<g:if test="${pageProperty(name:'meta.nav') == 'support'}">
  <g:link class="selected" ...>support</g:link>
</g:if>
<g:else>
  <g:link ...>support</g:link>
</g:else>

我想清理它,但是,这不起作用

<g:link class="${pageProperty(name:'meta.nav') == 'support' ? selected : null}" ...>support</g:if>

我尝试了几种不同的paranthesis变体,但似乎没有一种能得到我需要的东西。例如:

${(pageProperty(name:'meta.nav') == 'support') ? selected : null}
${(pageProperty(name:'meta.nav') == 'support' ? selected : null)}

似乎无法让它行动正确。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

在黑暗中作为狂野的刺,怎么样:

${ pageProperty(name:'meta.nav').equals( 'support' ) ? 'selected' : null }

不像常规,但可能不那么容易混淆解析器(看起来某个地方的东西变得混乱并将== support转移到不应该的地方)

答案 1 :(得分:1)

我会尝试将真实条件设为字符串:

${(pageProperty(name:'meta.nav') == 'support') ? 'selected' : null}

它可能正在尝试访问GSP脚本中名为selected的变量,该变量未定义。

希望有所帮助。