Mediante la etiqueta ‘ui:repeat’ de JSF podemos hacer un ‘bucle for‘ para repetir ‘n’ veces lo que necesitemos en la vista de nuestro sitio web.
Vamos a empezar por explicar los atributos que acepta esta etiqueta ‘ui:repeat‘. En esta tabla se muestran los diferentes atributos que se pueden utilzar y su definición:
AtributoDefinición
Atributo | Definición |
---|---|
varStatus | Esta variable contiene información del estado de la iteración |
value | Lista o colección de elementos sobre los que se va a iterar durante el bucle |
var | Nombre que se asigna a la variable temporal que se creará en cada paso de la iteración. Esta variable hace referencia al objeto |
offset | Indica la posición de inicio del bucle dentro de la colección. Si no se indica, se iniciará desde la primera posición. Por ejemplo, si su valor fuese ‘4’, no se iteraría sobre las 3 primeras posiciones de la lista, y si desde la cuarta en adelante. |
size | Indica el tamaño de la lista o colección sobre la que se está iterando. Debe tener el número exacto de elementos, sino devolverá una excepción. |
step | Sólo se procesas los pasos indicados dentro de la lista. Si por ejemplo valiese ‘2’, empezando por la primera posición, sólo se mostraría cada dos posiciones. |
Uso de la variable varStatus
La variable definida por el atributo ‘varStatus‘ nos aporta información sobre el estado de la iteracción. Estos serían los campos que contienen dicha variable de estado:
Parámetro | Valor |
---|---|
begin | Entero que indica la posición inicial del bucle |
end | Entero que indica la última posición del bucle |
index | Entero que indica la posición actual del bucle |
step | Entero que indica el número de saltos configurados |
even | Boolean que indica si se trata de una iteración con índice par |
odd | Boolean que indica si se trata de una iteración con índice impar |
first | Boolean que será verdadero si es el primer elemento de la iteración |
last | Boolean que será verdadero si se trata del último elemento de la iteración |
Estas variables se pueden utilizar de la siguiente manera:
HTML |copy code |?
1 <ui:repeat value="#{lista}" var="item" varStatus="estado">
2 3 <h:outputText value="Primer elemento cargado" rendered="#{estado.first}"/>
4 5 <h:outputText value="#{estado.index}"/>
6 7 <h:outputText value="Fin del bucle" rendered="#{estado.last}"/>
8 </ui:repeat>
Ejemplos etiqueta ui:repeat
En este primer ejemplo supongamos que tenemos una lista con los siguientes valores:
Java |copy code |?
1 List<String> miLista = Arrays.asList("Rojo", "Verde", "Azul","Amarillo");
Si añadimos este código en nuestra página:
HTML |copy code |?
1 <ui:repeat var="item" varStatus="status" value="#{miLista}">
2 Valor: #{item}<br/>
3 Posición: #{status.index}<br/>
4 </ui:repeat>
Obtendríamos la siguiente salida:
Text |copy code |?
1 Valor: Rojo2 Posición: 03 Valor: Verde4 Posición: 15 Valor: Azul6 Posición: 27 Valor: Amarillo8 Posición: 3
En este ejemplo, se recorre una lista que contiene diferentes colores, y se muestra en pantalla el color y la posición del mismo.
Deja tu comentario