web-dev-qa-db-ja.com

Eclipse Facelet HTML Validator:メソッドバインディングに式演算子を適用できません

Eclipse Facelet HTML Validatorは、次の行で「メソッドバインディングに式演算子を適用できません」というエラーを報告します。

<ui:fragment rendered="#{!empty managedBean.getSomething('ENUM_VALUE', someInt)}">

私はこれを Juno help (私はKeplerを使用しています)で見つけました:

Applying operator to method binding
#{bean.action * 5}
If bean.action indicates a method "action()" on bean, then it is not legal EL to treat its result as a value. In the example, multiplying action by 5 attempts treat it is as a value.

結果を値として扱うことが違法である理由を理解するのに苦労していますか?それでは、ELを書く正しい方法は何ですか?ありがとう!

18
Candice

必要に応じて、設定することでエラーメッセージを非表示にできます

Window -> Preferences -> Web -> JavaServer Faces Tool -> Validation -> General Problems

Applying method operator to bindingからIgnore

19
pasql

あなたはあなたの方法の周りにparanthesisを置いてみましたか?このような:

#{!empty (managedBean.getSomething('ENUM_VALUE', someInt))}

このようにして、JSFはメソッドを評価し、nullまたは空をチェックします。

私はJSFの専門家ではありませんが、同様の表現の1つで同じ問題が発生しました。

#{some_method() == 0 and some_other_method() eq 'some value'}

Eclipseで同じ問題が発生しましたが、ページは正しく実行されていました。両方の式の周りにparanthesisを配置した後、Eclipseはそのエラーを表示しませんでした。

13
Rash