Enumerados en Expresiones EL
En aplicaciones FundeWeb 2.0 y posteriores, podemos utilizar enumerados en expresiones EL mediante el componente <p:importEnum> de PrimeFaces.
Pero solo lo podemos utilizar en la página cargada. No lo podemos utilizar en el fichero pages.xml, en los ficheros .page.xml o en las expresiones EL utilizadas en el código Java; si antes no se ha cargado y resuelto el valor del enumerado.
Para poder utilizar enumerados de una manera general en las aplicaciones FundeWeb (1.5, 2.0 y posteriores), podemos definirlos en el fichero components.xml mediante la etiqueta <core:enum-loader>.
Dentro de esta etiqueta, utilizaremos la etiqueta <value> para registrar cada enumerado.
<core:enum-loader> <value>es.um.atica.jpa.das.DataAccessServiceImpl$QueryType</value> <value>es.um.atica.pruema.MiEnumerado</value> </core:enum-loader>
En el ejemplo hemos definido dos enumerados:
- es.um.atica.jpa.das.DataAccessServiceImpl$QueryType, donde el enumerado QueryType esta definido en la clase DataAccessServiceImpl. Utilizamos el separador '$'.
- es.um.atica.pruema.MiEnumerado, donde el enumerado MiEnumerado esta definido en su propio fichero.
Ejemplos de utilización:
<h:outputText value="1.- Enum Class: #{es.um.atica.jpa.das.DataAccessServiceImpl$QueryType}" /> <h:outputText value="2.- All Enum Values: " /> <ui:repeat var="_current" value="#{es.um.atica.jpa.das.DataAccessServiceImpl$QueryType.getEnumConstants()}"> <h:outputText value="#{_current}" />   </ui:repeat> <h:outputText value="3.- NAMED_QUERY enum Value: #{es.um.atica.jpa.das.DataAccessServiceImpl$QueryType.NAMED_QUERY}" /> <h:outputText value="4.- Compare equality of NAMED_QUERY and NAMED_QUERY: #{es.um.atica.jpa.das.DataAccessServiceImpl$QueryType.NAMED_QUERY eq es.um.atica.jpa.das.DataAccessServiceImpl$QueryType.NAMED_QUERY}" /> <h:outputText value="5.- Compare equality of NAMED_QUERY and JPA_QUERY: #{es.um.atica.jpa.das.DataAccessServiceImpl$QueryType.NAMED_QUERY eq es.um.atica.jpa.das.DataAccessServiceImpl$QueryType.JPA_QUERY}" /> <h:outputText value="6.- Usaer has role NAMED_QUERY: #{s:hasRole(es.um.atica.jpa.das.DataAccessServiceImpl$QueryType.NAMED_QUERY)}" />
y el resultado es:
1.- Enum Class: class es.um.atica.jpa.das.DataAccessServiceImpl$QueryType
2.- All Enum Values: NAMED_QUERY NATIVE_QUERY JPA_QUERY
3.- NAMED_QUERY enum Value: NAMED_QUERY
4.- Compare equality of NAMED_QUERY and NAMED_QUERY: true
5.- Compare equality of NAMED_QUERY and JPA_QUERY: false
6.- Usaer has role NAMED_QUERY: false
— JUAN MIGUEL BERNAL GONZALEZ 05/11/2019 13:57
- fdw2.0/fundeweb2.0/gt/modificaciones_jboss_seam/enumerados_el.txt
- Última modificación: 05/11/2019 14:51
- por JUAN MIGUEL BERNAL GONZALEZ