template etiquetas ejemplo definicion define jsf jsf-2 el

etiquetas - ui define jsf



Definir y reutilizar una variable EL en la página JSF (2)

¿Es posible definir variables y reutilizar la variable más adelante en expresiones EL?

Por ejemplo :

<h:inputText value="#{myBean.data.something.very.long}" rendered="#{myBean.data.something.very.long.showing}" />

Lo que tengo en mente es algo así como:

<!-- somehow define a variable here like : myVar = #{myBean.data.something.very.long} --> <h:inputText value="#{myVar}" rendered="#{myVar.showing}" />

Algunas ideas ? Gracias !


Al igual que cualquier vista en MVC, la página debe ser lo más simple posible. Si desea un acceso directo, coloque el acceso directo en el controlador ( @ManagedBean o @Named bean).

Controlador:

@Named public MyBean { public Data getData() { return data; } public Foo getFooShortcut() { return data.getSomething().getVery().getLong(); ] }

Ver:

<h:inputText value="#{myBean.fooShortcut}" rendered="#{myBean.fooShortcut.showing}" />


Puede usar <c:set> para esto:

<c:set var="myVar" value="#{myBean.data.something.very.long}" scope="request" />

Esta expresión EL se evaluará una vez y se almacenará en el alcance de la solicitud. Tenga en cuenta que esto solo funciona cuando el valor está disponible durante el tiempo de compilación de la vista . Si ese no es el caso, entonces necesitarás eliminar el atributo attribtue para que se convierta en un verdadero "alias":

<c:set var="myVar" value="#{myBean.data.something.very.long}" />

¡Tenga en cuenta que esto no almacena en caché el valor evaluado en el alcance de la solicitud! Será reevaluado cada vez.