IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[ struts-layout ]Resultat d'une requete sur plusieurs pages


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 21
    Points : 20
    Points
    20
    Par défaut [ struts-layout ]Resultat d'une requete sur plusieurs pages
    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 :
    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>
    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
    			ArrayList alRes = bdd.Query();
    			request.setAttribute("resReq", alRes);
    Et que la fonction Query() retourne un ArrayList d'ArrayList qui contient le résultat d'une requete "SELECT col1,col2,col3 FROM matable"

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

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    A partir du résultat de ton select, il faut créer une ArrayList de beans ayant pour attributs col1, col2 et col3, ce qui te permettra de coder ton layout:collection comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		<layout:pager maxPageItems="10" width="80%">
    			<layout:collection name="resReq" styleClass="ARRAY">
    				<layout:collectionItem title="col1" property="col1"/>
    				<layout:collectionItem title="col2" property="col2"/>
    				<layout:collectionItem title="col3" property="col3"/>
    			</layout:collection>
    		</layout:pager>
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Merci, c'est effectivement ce qu'il me fallait !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Afficher le résultat d'une requete sur plusieurs pages.
    Par Mat67 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/06/2007, 16h01
  2. Une requete sur plusieurs base
    Par MaitrePylos dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 06/10/2006, 16h11
  3. [vb6]faire une requete sur plusieurs tables
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/07/2006, 02h06
  4. [Struts] Afficher une ArrayList sur plusieurs pages
    Par tshupaka dans le forum Struts 1
    Réponses: 5
    Dernier message: 18/03/2006, 17h21
  5. [Struts]Affiche d'une liste sur plusieurs pages
    Par guillaume_85 dans le forum Struts 1
    Réponses: 3
    Dernier message: 24/06/2005, 20h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo