jsf - template - ¿Cómo usar && en expresiones EL booleanas en Facelets?
ui composition (2)
Me está costando un poco descifrar cómo hacerlo y sobre las expresiones EL en Facelets. Así que, básicamente, tengo:
<h:outputText id="Prompt"
value="Fobar"
rendered="#{beanA.prompt == true && beanB.currentBase !=null}" />
Pero sigo recibiendo:
Error trazado [línea: 69] El nombre de la entidad debe seguir inmediatamente el ''&'' en la referencia de la entidad.
Además de la respuesta de BalusC, use el siguiente Java RegExp para reemplazar &&
con and
:
Search: (#/{[^/}]*)(&&)([^/}]*/})
Replace: $1and$3
Ha ejecutado esta sustitución de expresiones regulares varias veces para encontrar todas las ocurrencias en caso de que esté utilizando> 2 literales en sus expresiones EL. Tenga en cuenta que debe reemplazar el # por $ si su sintaxis de expresión EL es diferente.
Facelets es una tecnología de visualización basada en XML. El &
es un personaje especial en XML que representa el inicio de una entidad como &
que termina con el ;
personaje. Tendría que escapar, lo cual es feo:
rendered="#{beanA.prompt == true && beanB.currentBase != null}"
o para usar la palabra clave and
lugar, que se prefiere en cuanto a legibilidad y facilidad de mantenimiento:
rendered="#{beanA.prompt == true and beanB.currentBase != null}"
Ver también:
Sin relación con el problema concreto, la comparación de booleanos con booleanos tiene poco sentido cuando la expresión ya espera un resultado booleano. Me desharía de == true
:
rendered="#{beanA.prompt and beanB.currentBase != null}"