Ответ 1
Если вам нравится, вы можете скрыть сообщение об ошибке, установив
Window → Preferences → Web → JavaServer Faces Tool → Validation -> General Problems
значение Applying method operator to binding
- Ignore
.
Анализатор HTML Eclipse Facelet сообщает об ошибке "Невозможно применить операторы выражения к привязкам к методу" для следующей строки:
<ui:fragment rendered="#{!empty managedBean.getSomething('ENUM_VALUE', someInt)}">
Я нашел это в справке Juno (я использую 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 тогда? Спасибо!
Если вам нравится, вы можете скрыть сообщение об ошибке, установив
Window → Preferences → Web → JavaServer Faces Tool → Validation -> General Problems
значение Applying method operator to binding
- Ignore
.
Попробовали ли вы положить paranthesis вокруг вашего метода. Вот так:
#{!empty (managedBean.getSomething('ENUM_VALUE', someInt))}
Таким образом, JSF оценивает метод и затем проверяет значение null или empty.
Я не эксперт в JSF, но у меня была такая же проблема в одном из похожих выражений:
#{some_method() == 0 and some_other_method() eq 'some value'}
Я видел ту же проблему, что и Eclipse, но страница работала правильно. После того, как я положил paranthesis вокруг обоих моих выражений, Eclipse не показывал эту ошибку.