Exemple : Utilisation de la balise JSP tsx:repeat devant servir à l'itération dans un ensemble de résultats (obsolète)

La balise <tsx:repeat> itère sur un ensemble de résultats contenu dans un bean. Le bean peut être statique, par exemple un bean créé via l'Assistant de base de données IBM® WebSphere Studio, ou généré dynamiquement, par exemple, par la syntaxe <tsx:dbquery>.

Fonction obsolète Fonction obsolète: La prise en charge des balises tsx dans le moteur JSP (JavaServer Pages) n'existe plus dans WebSphere Application Server Version 6.0. Plutôt que d'utiliser les balises tsx, utilisez leurs équivalents issus de la bibliothèque de balises JSTL (JavaServer Pages Standard Tag Library). depfeat

Le tableau ci-après représente le contenu d'un bean appelé myBean :

Tableau 1. Représentation graphique de myBean.. Contenu de myBean.
Colonne col1 col2 col3
row0 friends Romans countrymen
row1 bacon lettuce tomato
row2 May June July

Quelques observations à propos de ce bean :

Le tableau suivant établit la comparaison entre l'utilisation de la balise <tsx:repeat> pour effectuer une itération sur un bean statique et l'emploi de cette balise sur un bean généré dynamiquement :

Tableau 2. Exemple de bean statique et de bean <tsc:repeat>. Utilisez ce tableau pour comparer les deux beans.
Exemple de bean statique <tsx:repeat> exemple de bean
myBean.class
// Code pour obtenir une connexion

// Code pour extraire les données
   Select * from myTable;

// Code pour fermer la connexion
Fichier JSP
<tsx:repeat index=abc>
  <tsx:getProperty name="myBean"
    property="col1(abc)" />
</tsx:repeat>
Remarque :
  • Le bean myBean.class est statique.
  • La méthode d'accès aux propriétés du bean est de la forme myBean.get(propriété(index)).
  • Vous pouvez omettre l'index de propriété, auquel cas l'index de la balise <tsx:repeat> encapsulée est utilisé. Vous pouvez aussi omettre l'index dans la balise <tsx:repeat>.
  • La balise <tsx:repeat> itère sur les propriétés du bean, ligne par ligne, en commençant par la ligne de début.
Fichier 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 myTable;
</tsx:dbquery>

<tsx:repeat index=abc>
  <tsx:getProperty name="dynamic"
    property="col1(abc)" />
</tsx:repeat>
Remarque :
  • Le bean (dynamique) est généré par la balise <tsx:dbquery> et n'existe pas tant que la syntaxe n'est pas exécutée.
  • La méthode d'accès aux propriétés du bean est de la forme dynamic.getValue("propriété", index).
  • Vous pouvez omettre l'index de propriété, auquel cas l'index de la balise <tsx:repeat> encapsulée est utilisé. Vous pouvez aussi omettre l'index dans la balise <tsx:repeat>.
  • La syntaxe de la balise <tsx:repeat> itère sur les propriétés du bean, ligne par ligne, en commençant par la ligne de début.

Indexation implicite et explicite

Les exemples 1, 2 et 3 vous montrent comment utiliser la balise <tsx:repeat>. Ils produisent tous le même résultat si, au total, les propriétés indexées possèdent un maximum de 300 éléments. Si le nombre d'éléments est supérieur à 300, les exemples 1 et 2 les affichent tous alors que l'exemple 3 n'affiche que les 300 premiers.

L'exemple 1 présente une indexation implicite (les index de début et de fin par défaut sont utilisés). Le bean possédant le moins de propriétés indexées est celui qui limite le nombre de répétitions de la boucle.

<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>

L'exemple 2 présente une indexation explicite, avec un index de début et un index de fin :

<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>

L'exemple 3 présente une indexation semi-explicite (l'index de fin est spécifié explicitement, mais pas l'index de début). Bien que l'attribut index soit spécifié, la propriété city peut toujours être indexée implicitement, car (myIndex) n'est pas obligatoire.

<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>

Imbrication des blocs <tsx:repeat>

Vous pouvez imbriquer des blocs <tsx:repeat>. Chacun d'eux est indexé séparément. Cette possibilité est utile pour l'entrelacement des propriétés de deux beans ou de propriétés qui possèdent des sous-propriétés. Dans l'exemple, deux blocs <tsx:repeat> sont imbriqués pour afficher la liste des titres figurant sur chaque CD contenu dans le panier d'achat de l'utilisateur.

<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>

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rweb_jrepr
Nom du fichier : rweb_jrepr.html