Bonjour, c'est la première fois que je demande de l'aide sur ce forum car j'y suis depuis longtemps connecté vu la qualité des réponses et la quantité des questions en ayant toujours trouvé mon bonheur, mais là je sèche, et espère trouver une personne qui voudra bien se pencher sur mon soucis.
Mon problème est le suivant, je doit afficher une liste d'élèves qui contiennent entre autre deux champs texte contenant des commentaires et qui peuvent être éditer sur une page JSP.
L'affichage se fait sans problèmes mais je récupère toujours une liste vide dans mon action...
voila les codes permettant de mieux comprendre.
struts-config.xml
la classe listeetudiants
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 <form-bean name="ListeEtudiantsForm" type="scolarite.bean.ListeEtudiants"/> <action path="/modifierTout" name="ListeEtudiantsForm" input="/jsp/Liste.jsp" validate="false" scope="request" type="action.ModifierToutAction" parameter="valider"> <forward name="retour" path="/accueil.do"></forward> <forward name="valider" path="/jsp/errors.jsp"></forward> <forward name="erreur" path="/jsp/errors.jsp"></forward> <forward name="non" path="/jsp/NonAutorise.jsp"/> </action>
le bout de ma jsp contenant la liste :
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 package scolarite.bean; import java.util.ArrayList; import org.apache.struts.action.ActionForm; import scolarite.base.AccesTables; @SuppressWarnings("serial") public class ListeEtudiants extends ActionForm{ private ArrayList<EtudiantOP> listeEtudiants = new ArrayList<EtudiantOP>(); public ListeEtudiants(){ } public ListeEtudiants (String annee, String classe,String ordre, int orderBy){ AccesTables acces = new AccesTables(); this.listeEtudiants=(ArrayList<EtudiantOP>) acces.getListeEtudiants(annee, classe, orderBy, ordre); } /** * @return the listeEtudiants */ public ArrayList<EtudiantOP> getListeEtudiants() { return listeEtudiants; } /** * @param listeEtudiants the listeEtudiants to set */ public void setListeEtudiants(ArrayList<EtudiantOP> listeEtudiants) { this.listeEtudiants = listeEtudiants; } /** * @param int the id of the EtudiantOP to find * * @return the EtudiantOP selected by his id */ public EtudiantOP findEtudiantById(int id){ for (int i=0;i<listeEtudiants.size();i++){ if (Integer.parseInt(listeEtudiants.get(i).getId_op())==id){ return listeEtudiants.get(i); } } return null; } /** * @param index * @return * @see java.util.ArrayList#get(int) */ public EtudiantOP get(int index) { return listeEtudiants.get(index); } /** * @return * @see java.util.ArrayList#size() */ public int size() { return listeEtudiants.size(); } }
et le bout de ma LookupDispatchAction pour récupérer le formulaire
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 <table> <th>ID</th> <th><html:link href="${pageContext.request.contextPath}/choixList.do?orderBy=nom">Nom</html:link></th> <th><html:link href="${pageContext.request.contextPath}/choixList.do?orderBy=prenom">Prénom</html:link></th> <th>Proposition CE</th> <th>Copier</th> <th>Décision CE</th> <html:form action="/modifierTout.do" method="POST" focus="proposition" > <logic:iterate property="listeEtudiants" id="EtudiantOP" name="listeEtudiantsBean" indexId="i" scope="session"> <tr class="tuples2" > <td align="center"><bean:write name="EtudiantOP" property="id_op"/></td> <td align="center"><bean:write name="EtudiantOP" property="nom"/></td> <td align="center"><bean:write name="EtudiantOP" property="prenom"/></td> <td align="center"><html:text name="EtudiantOP" property="proposition" size="32" indexed="true"></html:text></td> <td align="center"><a href="${pageContext.request.contextPath}/copier.do?id=${EtudiantOP.id_op}"><html:img src="images/button.PNG"></html:img></a></td> <td align="center"><html:text name="EtudiantOP" property="decision" size="32" indexed="true"></html:text></td> </tr> </logic:iterate> <tr> <td colspan="6"> <center> <html:submit property="valider" ><bean:message key="validerListe.retour"/></html:submit> <html:submit property="valider"><bean:message key="validerListe.valider"/></html:submit> </center> </td></tr> </html:form> </table>
Voila, un grand merci d'avance pour celui qui trouve, et m'enlèvera une énorme épine du pied !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public ActionForward valider(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ListeEtudiants liste = (ListeEtudiants) form; System.out.println("ListSizeAfter"+liste.size());
Partager