1. ホーム
  2. jsf

[解決済み] FaceletsのEL boolean式で&&を使うには?

2023-05-19 08:07:38

質問

FaceletsのEL式でandを使う方法がわからなくて困っています。 だから基本的に私は持っています。

<h:outputText id="Prompt"
    value="Fobar" 
    rendered="#{beanA.prompt == true && beanB.currentBase !=null}" />

しかし、私は取得し続ける。

エラー発生[line: 69] エンティティ名は、エンティティ参照の'&'のすぐ後になければなりません。 の直後でなければなりません。

どのように解決するのですか?

FaceletsはXMLベースのビュー技術です。その & 特殊文字 のようなエンティティの開始を表すXMLの特殊文字です。 &amp; で終わる ; 文字で終わります。それをエスケープする必要がありますが、これは醜いことです。

rendered="#{beanA.prompt == true &amp;&amp; beanB.currentBase != null}"

を使うか、あるいは and キーワードを使うこともできます。

rendered="#{beanA.prompt == true and beanB.currentBase != null}"

こちらもご覧ください。


関係ない は具体的な問題に関係なく、式がすでにブーリアン結果を期待している場合、ブーリアンとブーリアンの比較はほとんど意味を持ちません。私なら == true :

rendered="#{beanA.prompt and beanB.currentBase != null}"