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 :

Récupération du bean n°i dans une liste en session hors d'un iterate


Sujet :

Struts 1 Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut Récupération du bean n°i dans une liste en session hors d'un iterate
    Salut à tous!

    J'ai un petit souci en jsp et je ne vois pas trop comment faire. voici mon problème :

    J'ai dans ma jsp un tableau à afficher. chaque case de ce tableau permets d'afficher des données se trouvant dans des objets d'une liste d'Avis :

    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
    public class monBean {
       private Arraylist<Avis> listeAvis = new ArrayList<Avis>();
     
    ... 
     
    /*  getters & setters  */
    public Arraylist<Avis> getListeAvis(){
        return listeAvis;
    }
    }
     
    public class Avis {
    private String informations;
    private String données;
    ...
     
    /* getters & setters*/
    public String getInformations(){ return informations;}
    public void setInformations (String informations) { this.informations = informations; }
    ...
    }
    En session j'ai monBean qui contient une liste d'avis (une ArrayList<Avis> listeAvis).

    Dans ma page jsp je dois afficher ceci :
    - la première ligne contient les titre de chaque colone (sauf la premiere case qui est vide)
    - la premiere colone contient les tîtres de chacune des lignes (sauf la premiere case qui est vide)
    Le code correspondant est ok jusque là :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <table class="resultatEligInv">
    				<thead>
    					<tr>
    						<th></th>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.internet"/></th>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.tv"/></th>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.visio"/></th>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.canalplus"/></th>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.tvhd"/></th>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.multiecrans"/></th>
    					</tr>
    				</thead>
    				<tbody>
    					<!-- ligne 512 RE -->
    					<bean:define id="numligne" value="0"/>
    					<bean:define id="numcol" value="1"/>
    					<tr>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.512re"/></th>
    						<td>ligne 0 colonne 1</td>
    						<td>ligne 0 colonne 2</td>
    						<td>ligne 0 colonne 3</td>
    						<td>ligne 0 colonne 4</td>
    						<td>ligne 0 colonne 5</td>
    						<td>ligne 0 colonne 6</td>
    					</tr>
    					<!-- ligne 1 MM -->
    					<tr>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.1mm"/></th>
    						<td>ligne 1 colonne 1</td>
    						<td>ligne 1 colonne 2</td>
    						<td>ligne 1 colonne 3</td>
    						<td>ligne 1 colonne 4</td>
    						<td>ligne 1 colonne 5</td>
    						<td>ligne 1 colonne 6</td>
    					</tr>
    					<!-- ligne 1 MM Etendu -->
    					<tr>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.1mmetendu"/></th>
    						<td>ligne 2 colonne 1</td>
    						<td>ligne 2 colonne 2</td>
    						<td>ligne 2 colonne 3</td>
    						<td>ligne 2 colonne 4</td>
    						<td>ligne 2 colonne 5</td>
    						<td>ligne 2 colonne 6</td>
    					</tr>
    					<!-- ligne 2 MM -->
    					<tr>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.2mm"/></th>
    						<td>ligne 3 colonne 1</td>
    						<td>ligne 3 colonne 2</td>
    						<td>ligne 3 colonne 3</td>
    						<td>ligne 3 colonne 4</td>
    						<td>ligne 3 colonne 5</td>
    						<td>ligne 3 colonne 6</td>
    					</tr>
    					<!-- ligne 8 MM -->
    					<tr>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.8mm"/></th>
    						<td>ligne 4 colonne 1</td>
    						<td>ligne 4 colonne 2</td>
    						<td>ligne 4 colonne 3</td>
    						<td>ligne 4 colonne 4</td>
    						<td>ligne 4 colonne 5</td>
    						<td>ligne 4 colonne 6</td>
    					</tr>
    					<!-- ligne 18 MM -->
    					<tr>
    						<th><bean:message key="eligibiliteInversee.reponse.tableau.18mm"/></th>
    						<td>ligne 5 colonne 1</td>
    						<td>ligne 5 colonne 2</td>
    						<td>ligne 5 colonne 3</td>
    						<td>ligne 5 colonne 4</td>
    						<td>ligne 5 colonne 5</td>
    						<td>ligne 5 colonne 6</td>
    					</tr>
    				</tbody>
    			</table>
    dans la case nommée par case de la ligne x et de la colonne y, il me faut afficher les données de l'avis (x*6 +y)

    Une idée de comment le récupérer autrement que en passant par du java bien sûr c'est un peu le but.... (parce que en java je sais faire mais il me faut éviter de mettre du java dans la jsp.

    Donc j'avais pensé faire un truc du style :
    - définition de deux bean ligne et colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <bean:define id="numligne" value="0"/>
    <bean:define id="numcol" value="1"/>
    de les incrémenter à chaque case affichée et de récupérer l'avis à partir de ces deux indices :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:define id="avis" name="monBean" property="listeAvis[numligne][numcolonne]"/>
    qui ferait appel au getter avec deux indices en param du getter dans le bean en session qui contient ma liste d'avis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Avis getListeAvis(int numligne, int numcolonne){
    return listeAvis.get(numLigne*6 + numcolonne);
    }
    Voilà en gros ce que je cherche à faire. il me semble qu'il est possible de faire comme ca des récupérations d'un bean dans une liste de bean à l'aide de l'index, mais j'aimerais savoir si cela est possible d'une part autrement que avec un nested:iterate et d'autre part si l'index peut être avec deux index....

    Et si bien évidemment des personnes savent vers ou m'orienter pour mon développement, ca m'arrangerait assez

    Merci d'avance

    Anne
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    J'ai pensé faire un truc :
    Dans chaque '<tr>' de ma table, je met le th et ensuite j'itere 6 fois sur ma liste d'avis et tout est ok.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!-- ligne 512 RE -->
    ......
    <bean:define id="numligne" value="0"/>
    <tr>
        <th><bean:message key="eligibiliteInversee.reponse.tableau.512re"/></th>
        <logic:iterate id="avis" name="MonBean" property="monSousBean.listeAvis" offset="${numligne*6}" length="6">
            <td>TEST LOGIC ITERATE</td>
        </logic:iterate>
    </tr>
    ....
    Et c'est bon, ca marche comme ca (j'ai même pas eu besoin d'ajouter des fonction getListeAvis(int index))...

    Voilà, si ca peut rendre service à quelqu'un....

    A+

    Anne
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/10/2014, 14h03
  2. Réponses: 1
    Dernier message: 02/03/2014, 14h17
  3. Récupération de noeuds parents dans une liste
    Par Novac dans le forum jQuery
    Réponses: 11
    Dernier message: 21/09/2011, 17h07
  4. Réponses: 16
    Dernier message: 19/05/2011, 09h36
  5. Récupération des éléments sélectionner dans une liste
    Par Jasmine80 dans le forum Interfaces Graphiques
    Réponses: 13
    Dernier message: 17/09/2009, 12h52

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