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.