7

に数値があります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>

そしてサーバーは私にこのエラーを与えます:

要素タイプ「h:outputText」に関連付けられた属性「rendered」の値には、「<」文字を含めることはできません

c:ifテーブル を使用すると、データなしで表示されます。

<c:if test="#{valor.valor > 0}">
    <h:outputText value="#{valor.valor}" />
    <c:otherwise>
        <h:outputText value="-" />
    </c:otherwise>
</c:if>  

どうすれば問題を解決できますか?

4

2 に答える 2

17

シンボルベースの 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
于 2014-12-19T23:44:33.553 に答える
2

「<」文字はxml内の文字列では無効であるため、そのエラーが発生しています。式言語の比較方法を使用する必要があります。

あなたの状況では、 which lemeans less than or equalを使用する必要があります。

"${valor.valor <= 0}" に 変更 "${valor.valor le 0}"

于 2014-12-19T23:44:07.810 に答える