13

jsfで使うel式に条件式を入れようとしていますが、うまくいきません。

<h:outputText value="#{(sel.description !=null) && (sel.description !='') ? sel.description : 'Empty description'} - "/>

しかし、それは機能しません、コンパイラは言います:

Error Traced [line: 118] エンティティ名は、エンティティ参照の「&」の直後に続く必要があります。

何か提案はありますか?ありがとうございました!

4

2 に答える 2

30

あなたはFaceletsを使用しているようです(これはまったく問題ありません)。ただし、これは XML ベースのビュー テクノロジです。Facelets に記述するものはすべて、構文的に有効な XML でなければなりません。XMLでは、、、 などのエンティティ&開始を示す特殊文字です。&amp;&lt;&gt;&#160;

そのままを XML で表現し&たい場合は、 に置き換える必要があり&amp;ます。

<h:outputText value="#{(sel.description !=null) &amp;&amp; (sel.description !='') ? sel.description : 'Empty description'} - "/>

ただし、これはかなり読みにくいため、代替の EL 演算子を使用することをお勧めします(ELで使用可能なすべての演算子の概要については、EL の演算子andも参照してください)。

<h:outputText value="#{(sel.description !=null) and (sel.description !='') ? sel.description : 'Empty description'} - "/>

empty全体として、nullness と emptyness の両方をテストするためのより単純なキーワードがあるため、これは非常に不器用です。これは、特定のケースでは次のように使用できます。

<h:outputText value="#{not empty sel.description ? sel.description : 'Empty description'} - "/>

また

<h:outputText value="#{!empty sel.description ? sel.description : 'Empty description'} - "/>

また

<h:outputText value="#{empty sel.description ? 'Empty description' : sel.description} - "/>
于 2012-11-13T11:35:53.350 に答える
5

andの代わりに使用し&&ます。単純に XML 構文エラーがあります。

于 2012-11-13T11:28:26.900 に答える