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 :
En session j'ai monBean qui contient une liste d'avis (une ArrayList<Avis> listeAvis).
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; } ... }
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à :
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)
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>
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 :
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
1
2 <bean:define id="numligne" value="0"/> <bean:define id="numcol" value="1"/>
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 <bean:define id="avis" name="monBean" property="listeAvis[numligne][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....
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); }
Et si bien évidemment des personnes savent vers ou m'orienter pour mon développement, ca m'arrangerait assez
Merci d'avance
Anne
Partager