我在p:dataTable中有数值。当值小于0时,应插入“-”符号代替值。

我尝试使用c:if,它不起作用。我正在阅读,有人建议使用rendered标志。

代码是:

<p:column headerText="Valor">
    <h:outputText rendered="${valor.valor > 0}" value="${valor.valor}" />
    <h:outputText rendered="${valor.valor <= 0}" value="${valorMB.noDato}" />
</p:column>

和服务器给我这个错误:



如果我使用c:if,则该表将显示为无数据:
<c:if test="#{valor.valor > 0}">
    <h:outputText value="#{valor.valor}" />
    <c:otherwise>
        <h:outputText value="-" />
    </c:otherwise>
</c:if>

我该如何解决我的问题?

最佳答案

使用基于关键字的EL运算符,而不是基于符号的EL运算符:

<h:outputText rendered="#{valor.valor gt 0}" value="#{valor.valor}" /> <!-- valor.valor > 0 -->
<h:outputText rendered="#{valor.valor le 0}" value="-" /> <!-- valor.valor <= 0 -->
  • lt(低于)
  • gt(大于)
  • le(小于或等于)
  • ge(大于或等于)
  • eq(相等)
  • ne(不相等)
  • and
  • or
  • 关于jsf - 与[...]关联的属性 "rendered"的值不得包含 '<'字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27574811/

    10-10 22:57