solo - Eclipse Facelet HTML Validator: No se pueden aplicar operadores de expresión a los enlaces de método
jsf ejemplo (2)
El validador de HTML de Eclipse Facelet informa de un error "No se pueden aplicar los operadores de expresión a los enlaces de método" para la siguiente línea:
<ui:fragment rendered="#{!empty managedBean.getSomething(''ENUM_VALUE'', someInt)}">
Encontré esto en la ayuda de Juno (estoy usando 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.
¿Tengo problemas para entender por qué no es legal tratar su resultado como un valor? ¿Cuál es la forma correcta de escribir el EL entonces? ¡Gracias!
¿Has intentado poner paréntesis alrededor de tu método? Me gusta esto:
#{!empty (managedBean.getSomething(''ENUM_VALUE'', someInt))}
De esta manera, JSF evalúa el método y luego verifica si está vacío o sin valor.
No soy un experto en JSF, pero tuve el mismo problema en una de las expresiones similares:
#{some_method() == 0 and some_other_method() eq ''some value''}
Vi el mismo problema mostrado por Eclipse pero la página se estaba ejecutando correctamente. Después de poner paréntesis alrededor de mis expresiones, Eclipse no mostró ese error.
Si lo desea puede ocultar el mensaje de error configurando
Ventana -> Preferencias -> Web -> Herramienta JavaServer Faces -> Validación -> Problemas generales
el valor que Applying method operator to binding
con Ignore
.