Para una Collection
es fácil, sólo tiene que utilizar el método Colleciton#contains()
en EL.
<h:panelGroup id="p1" rendered="#{bean.panels.contains('p1')}">...</h:panelGroup>
<h:panelGroup id="p2" rendered="#{bean.panels.contains('p2')}">...</h:panelGroup>
<h:panelGroup id="p3" rendered="#{bean.panels.contains('p3')}">...</h:panelGroup>
Para una Object[]
(matriz), se necesitaría un mínimo de EL 3.0 y utilizar su nuevo soporte Lambda.
<h:panelGroup id="p1" rendered="#{bean.panels.stream().anyMatch(v -> v == 'p1').get()}">...</h:panelGroup>
<h:panelGroup id="p2" rendered="#{bean.panels.stream().anyMatch(v -> v == 'p2').get()}">...</h:panelGroup>
<h:panelGroup id="p3" rendered="#{bean.panels.stream().anyMatch(v -> v == 'p3').get()}">...</h:panelGroup>
Si todavía no tienes EL 3.0, necesitarás crear una función EL personalizada. Para un ejemplo concreto, ver How to create a custom EL function to invoke a static method? P. ej.
public static boolean contains(Object[] array, Object item) {
return Arrays.asList(array).contains(item);
}
que se coloca como
<function>
<function-name>contains</function-name>
<function-class>com.example.Functions</function-class>
<function-signature>boolean contains(java.lang.Object[], java.lang.Object)</function-signature>
</function>
y para ser utilizado como
<h:panelGroup ... rendered="#{func:contains(bean.panels, 'u1')}">
Esto no está disponible en JSTL. Hay un fn:contains()
, pero eso solo funciona en los valores String
.
Simplemente no use arrays si quiere hacer un poco más que simplemente mantener los datos. Usa colecciones entonces. – BalusC
bueno, lo estoy usando en un atributo de entrada, pero el método no se está llamando: 'checked =" # {utils.contains (myBean.array, 'myBean.someIndicator')? 'Checked': ''} "' –
¿Hay algún error EL? Por cierto, la forma en que usas 'checked 'no es del todo correcta. Se marca una casilla de verificación/botón de radio cuando todo el atributo está presente, independientemente de su valor. Básicamente, desea imprimir el nombre del atributo en lugar del valor del atributo condicionalmente. – BalusC