Eclipse Facelet HTML Validator:无法将表达式运算符应用于方法绑定

时间:2014-01-05 00:38:30

标签: eclipse validation jsf-2 facelets el

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的正确方法是什么?谢谢!

2 个答案:

答案 0 :(得分:17)

如果您愿意,可以通过设置

隐藏错误消息

Window - &gt; 偏好设置 - &gt; Web - &gt; JavaServer Faces Tool - &gt; 验证 - &gt;一般问题

Applying method operator to bindingIgnore

答案 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没有显示错误。