Grâce aux différents posts concernant le sujet, j'essaie d'utiliser struts-layout dans une page JSP pour afficher un tableau sur plusieurs pages.
Au départ, j'utilisait :
Sachant que resReq est un attribut de requete initialisé dans une classe Action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <html> <head> <title>Mon appli</title> <link rel="stylesheet" href="./vues/style.css" type="text/css"> </head> <body> <div> <table> <logic:iterate id="ligne" name="resReq"> <tr> <logic:iterate id="valeur" name="ligne"> <logic:present name="valeur"> <td class="tablecel"><bean:write name="valeur" /></td> </logic:present> <logic:notPresent name="valeur"> <td class="tablecel"></td> </logic:notPresent> </logic:iterate> </tr> </logic:iterate> </table> </div> </body> </html>
Et que la fonction Query() retourne un ArrayList d'ArrayList qui contient le résultat d'une requete "SELECT col1,col2,col3 FROM matable"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ArrayList alRes = bdd.Query(); request.setAttribute("resReq", alRes);
J'obtiens bien les résultats sous forme d'un tableau, de 3 colonnes et environ 1000 lignes :
A1 | A2 | A3
B1 | B2 | B3
C1 | C2 | C3
...
Je voudrais donc pouvoir afficher ce tableau sur plusieurs pages, pour être plus lisible.
J'ai donc : importé sous Eclipse le struts-layout.jar,
ajouté les actions treeview et sort dans struts-config.xml,
ajouté struts-layout.jar dans le répertoire WEB-INF/lib,
ajouté struts-layout.tld dans le répertoire WEB-INF,
copié les répertoire config et images à la racine de mon appli
Et j'ai remplacé le code de ma JSP par :
Mais là, il y a bien un tableau qui s'affiche, de 3 colonnes et 100 lignes et sur 100 pages, mais chaque cellule contient la ligne complète du résultat de ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout" %> <html> <head> <title>Mon appli</title> <link rel="stylesheet" href="./vues/style.css" type="text/css"> </head> <body> <div> <layout:pager maxPageItems="10" width="80%"> <layout:collection name="resReq" styleClass="ARRAY"> <layout:collectionItem title="col1" /> <layout:collectionItem title="col2" /> <layout:collectionItem title="col3" /> </layout:collection> </layout:pager> </div> </body> </html>
col1 | col2 | Col3
A1,A2,A3 | A1,A2,A3 | A1,A2,A3
B1,B2,B3 | B1,B2,B3 | B1,B2,B3
C1,C2,C3 | C1,C2,C3 | C1,C2,C3
...
Si je modifie la fonction Query() pour quelle retourne un "simple" ArrayList qui contient le résultat de la requete, j'obtiens :
col1 | col2 | Col3
A1 | A1 | A1
A2 | A2 | A2
A3 | A3 | A3
B1 | B1 | B1
B2 | B2 | B2
B3 | B3 | B3
C1 | C1 | C1
C2 | C2 | C2
C3 | C3 | C3
...
Comment faire pour séparer les colonnes ?
Partager