Eclipse Facelet HTML Validator针对以下行报告错误“无法将表达式运算符应用于方法绑定”:
<ui:fragment rendered="#{!empty managedBean.getSomething('ENUM_VALUE', someInt)}">
我在Juno help(我正在使用开普勒)中找到了这个:
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的正确方法是什么?谢谢!
答案 0 :(得分:17)
如果您愿意,可以通过设置
隐藏错误消息Window - &gt; 偏好设置 - &gt; Web - &gt; JavaServer Faces Tool - &gt; 验证 - &gt;一般问题
值Applying method operator to binding
到Ignore
。
答案 1 :(得分:13)
您是否尝试过将paranthesis放在您的方法周围? 像这样:
#{!empty (managedBean.getSomething('ENUM_VALUE', someInt))}
这样,JSF会对方法进行评估,然后检查null或为空。
我不是JSF的专家,但我在其中一个类似的表达式中遇到了同样的问题:
#{some_method() == 0 and some_other_method() eq 'some value'}
我看到了Eclipse显示的相同问题,但页面运行正常。在我的两个表达式周围放置了paranthesis之后,Eclipse没有显示错误。