JSP (boucle affichage table en 2 colonnes)

JSP (boucle affichage table en 2 colonnes) - Java - Programmation

Marsh Posté le 28-03-2006 à 12:36:55    

bonjour, j'y connais aps grand chose en JSP, je fais du PHP d'habitude.. je dois modifier un site existant, au départ ça affichait en une colonne.. maintenant ça doit afficher en deux colonnes...
 
ya donc une boucle du type :
 

Code :
  1. <% for(int i = 0; i < liste_article.size() ; i++){ %>
  2. <tr>
  3. <td><%= [item 1] %></td>
  4. </td>
  5. <%
  6. }
  7. %>


 
je l'ai modifiée ainsi pour faire deux colonnes...
 

Code :
  1. <% for(int i = 0; i < liste_article.size() ; i++){ %>
  2. <tr>
  3. <td><%= [item 1] %></td>
  4. </td>
  5. <% i++ %>
  6. <td><%= [item 1] %></td>
  7. </td>
  8. <%
  9. }
  10. %>


 
 
[c'est un résumé biensur]
 
... mais parfois la boucle plante visiblement...
je pense que c'est une question de chiffre paire ou impaire, quand il arrive à la derniere ligne, et qu'il n'y a qu'un seul item j'imagine que ça foire...  comment arrondir le liste_article.size() ? si vous avez d'autres astuces à me communiquer.. je suis preneur !
 
Merci
 
Freed

Reply

Marsh Posté le 28-03-2006 à 12:36:55   

Reply

Marsh Posté le 28-03-2006 à 12:40:40    

Effectivement ça ne peut fonctionner que pour les listes de taille paire. Après ton <% i++ %> tu dois vérifier si tu n'as pas dépassé la taille de la liste avant d'essayer d'afficher le contenu de la cellule.


---------------
Commons Configuration - http://jakarta.apache.org/commons/configuration
Reply

Marsh Posté le 28-03-2006 à 12:56:31    

si je fais ça :

Code :
  1. <%
  2. if(i<liste_famille.size())
  3. {
  4. i++;
  5. %>
  6. <td>[item2]</td>
  7. <% } else {%>
  8. <td>&nbsp; </td>
  9. <% } %>


 
... ça irait ?


Message édité par freed102 le 28-03-2006 à 12:58:49
Reply

Marsh Posté le 28-03-2006 à 13:49:08    

c trop chelou ce qu'il se passe.. un coup il affiche un coup il affiche pas.. j'ai des trous dans mon tableau ! c tres etrange !
 
j'ai mis des <% out.print(i) %> dans la premiere cellule de chaque colonne pour afficher l'increment...
et voila ce qu'il me retourne (par exemple) :
 

Code :
  1. <!-- Nouvelle ligne -->
  2. <tr>
  3. <!-- Première colonne -->
  4. <td width="10">0</td>
  5. <td width="105" align="left" valign="top" class="table_filet_left_and_up">&nbsp;
  6. </td>
  7. <td width="196" valign="top" class="table_filet_up">
  8. </td>
  9. <!-- deuxieme colonne -->
  10. <td width="10">1</td>
  11. <td width="105" align="left" valign="top" class="table_filet_left_and_up">
  12. </td>
  13. <td width="196" valign="top" class="table_filet_up">&nbsp;
  14. </td>
  15. </tr>
  16. <tr>
  17. <td colspan="6" class="table_hspacing">&nbsp;</td>
  18. </tr>
  19. <!-- Nouvelle ligne -->
  20. <tr>
  21. <!-- Première colonne -->
  22. <td width="10">2</td>
  23. <td width="105" align="left" valign="top" class="table_filet_left_and_up">
  24. </td>
  25. <td width="196" valign="top" class="table_filet_up">
  26. </td>
  27. <!-- deuxieme colonne -->
  28. <td width="10">2</td>
  29. <td width="105" align="left" valign="top">
  30. </td>
  31. <td width="196" valign="top">
  32. </td>
  33. </tr>
  34. <tr>
  35. <td colspan="6" class="table_hspacing">&nbsp;</td>
  36. </tr>
  37. <!-- Nouvelle ligne -->
  38. <tr>
  39. <!-- Première colonne -->
  40. <td width="10">3</td>
  41. <td width="105" align="left" valign="top" class="table_filet_left_and_up">&nbsp;
  42. </td>
  43. <td width="196" valign="top" class="table_filet_up">
  44. </td>
  45. <!-- deuxieme colonne -->
  46. <td width="10">3</td>
  47. <td width="105" align="left" valign="top">
  48. </td>
  49. <td width="196" valign="top">
  50. </td>
  51. </tr>
  52. <tr>
  53. <td colspan="6" class="table_hspacing">&nbsp;</td>
  54. </tr>


Message édité par freed102 le 28-03-2006 à 14:10:47
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed