Ejemplo: utilización de tsx:repeat de JSP (JavaServer Pages) para la iteración de un conjunto de resultados

El distintivo <tsx:repeat> repite un conjunto de resultados. El conjunto está contenido en un bean. El bean puede ser un bean estático, por ejemplo, un bean creado mediante el uso del asistente de la base de datos de IBM® WebSphere Studio, o un bean generado dinámicamente, por ejemplo, un bean generado por la sintaxis <tsx:dbquery> syntax.

Deprecated feature Deprecated feature: El soporte de los distintivos tsx siguientes en el motor de JSP (JavaServer Pages) está en desuso en WebSphere Application Server Versión 6.0. En lugar de utilizar los distintivos tsx, utilice distintivos equivalentes de JSTL (JavaServer Pages Standard Tag Library). depfeat

La tabla siguiente es una representación gráfica del contenido de un bean llamado miBean:

Tabla 1. Representación gráfica de miBean. . Contenido de miBean.
Columna col1 col2 col3
row0 amigos romanos conciudadanos
row1 panceta lechuga tomate
row2 mayo junio julio

Algunas observaciones acerca del bean:

En la tabla siguiente se compara el uso del distintivo <tsx:repeat> para repetir un bean estático con el uso de un bean generado dinámicamente:

Tabla 2. Ejemplo de bean estático y de bean <tsc:repeat>. Utilice esta tabla para comparar los dos beans.
Ejemplo de bean estático Ejemplo de bean <tsx:repeat>
myBean.class
// Código para obtener una conexión

// Código para obtener los datos
   Select * from MiTabla;

// Código para cerrar la conexión
Archivo JSP
<tsx:repeat index=abc>
  <tsx:getProperty name="miBean"
    property="col1(abc)" />
</tsx:repeat>
Nota:
  • El bean (MiBean.class) es un bean estático.
  • El método para acceder a las propiedades del bean es miBean.get(property(index)).
  • Puede omitir el índice de propiedad, en cuyo caso se utiliza el índice del distintivo <tsx:repeat> que lo encierra. También puede omitir el índice en el distintivo <tsx:repeat>.
  • El distintivo <tsx:repeat> repite las propiedades del distintivo fila por fila, empezando por la fila inicial.
Archivo JSP
<tsx:dbconnect id="conn"
userid="alice"passwd="test"
url="jdbc:db2:sample"
driver="COM.ibm.db2.jdbc.app.DB2Driver">
</tsx:dbconnect >

<tsx:dbquery id="dynamic"
 connection="conn" >
  Select * from MiTabla;
</tsx:dbquery>

<tsx:repeat index=abc>
  <tsx:getProperty name="dynamic"
    property="col1(abc)" />
</tsx:repeat>
Nota:
  • El bean (dinámico) es generado por el distintivo <tsx:dbquery> y no existe hasta que se ejecuta la sintaxis.
  • El método para acceder a las propiedades del bean es dynamic.getValue("property", index).
  • Puede omitir el índice de propiedad, en cuyo caso se utiliza el índice del distintivo <tsx:repeat> que lo encierra. También puede omitir el índice en el distintivo <tsx:repeat>.
  • La sintaxis del distintivo <tsx:repeat> repite las propiedades del bean fila por fila, empezando por la fila inicial.

Creación de índices implícita y explícita

Los ejemplos 1, 2 y 3 muestran cómo utilizar el distintivo <tsx:repeat>. Los ejemplos generan la misma salida si todas las propiedades indexadas tienen 300 o menos elementos. Si hay más de 300 elementos, los ejemplos 1 y 2 visualizarán todos los elementos, mientras que el ejemplo 3 sólo mostrará los 300 primeros elementos.

El ejemplo 1 muestra la creación de índices implícita con el índice inicial predeterminado y el índice final predeterminado. El bean con el número más pequeño de propiedades indexadas limita el número de veces que se repetirá el bucle.

<table>
<tsx:repeat>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property="city" />
  </tr></td>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property="address" />
  </tr></td>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property="telephone" />
  </tr></td>
</tsx:repeat>
</table>

En el ejemplo 2 se muestran la creación de índices, el índice inicial y el índice final:

<table>
<tsx:repeat index=myIndex start=0 end=2147483647>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property=city(myIndex) />
  </tr></td>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property=address(myIndex) />
  </tr></td>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property=telephone(myIndex) />
</tr></td>
</tsx:repeat>
</table>

El ejemplo 3 muestra la creación de índices explícita y el índice final con el índice inicial implícito. Aunque el atributo index está especificado, la propiedad indexada city todavía puede indexarse implícitamente ya que el distintivo (MyIndex) no es obligatorio.

<table>
<tsx:repeat index=myIndex end=299>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property="city" /t>
  </tr></td>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property="address(myIndex)" />
  </tr></td>
  <tr><td><tsx:getProperty name="serviceLocationsQuery" property="telephone(myIndex)" />
  </tr></td>
</tsx:repeat>
</table>

Anidación de bloques <tsx:repeat>

Puede anidar bloques <tsx:repeat>. Cada bloque se indexa por separado. Esta posibilidad es útil para intercalar propiedades en dos beans, o propiedades que tienen subpropiedades. En el ejemplo, se anidan dos bloques <tsx:repeat> para visualizar la lista de canciones de cada CD del carro de la compra del usuario.

<tsx:repeat index=cdindex>
  <h1><tsx:getProperty name="shoppingCart" property=cds.title /></h1>
  <table>
  <tsx:repeat>
    <tr><td><tsx:getProperty name="shoppingCart" property=cds(cdindex).playlist />
    </td></tr>
  </tsx:repeat>
  </table>
 </tsx:repeat>

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rweb_jrepr
File name: rweb_jrepr.html