Bonjour,
J'initialise un ArrayList dans une classe Action:
La page JSP affichée après l'exécution est la suivante:
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 import java.util.ArrayList; public class MaClasse extends Action { public ActionForward execute(...) { try { ArrayList alCol = new ArrayList(); alCol.add("COL1"); alCol.add("COL2"); alCol.add("COL3"); alCol.trimToSize(); request.setAttribute("colReq", alCol); ... return mapping.findForward("showResult"); } }
L'affichage de la JSP provoque l'erreur suivante:
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 <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <html> <head> <title>Affichage ArrayList</title> </head> <body> <div> <table> <logic:iterate id="titres" name="colReq"> <tr> <logic:iterate id="intitule" name="titres"> <td><bean:write name="intitule" /></td> </logic:iterate> </tr> </logic:iterate> </table> </div> </body> </html>
Par contre, si je remplace le code de ma classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part org.apache.jasper.JasperException: Cannot create iterator for this collection
par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part request.setAttribute("colReq", alCol);
Ca fonctionne correctement...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ArrayList al = new ArrayList(); al.add(alCol); request.setAttribute("colReq", al);
Qu'est-ce que le fait de copier mon ArrrayList dans un autre change ?
Partager