bonjour
je tourne en rond dans un problème que je ne comprend pas
j'ai dans ma jsp 2 collection (la 2eme contient un champ modifiable voici le code
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
 
<%@ page language="java" pageEncoding="ISO-8859-1"%>
 
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<%@taglib uri="http://struts.application-servers.com/layout" prefix="layout" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.yourcompany.struts.UtilBean.Profil" %>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  <head>
    <html:base />
 
    <title>Réservation</title>
 <layout:skin includeScript="true"/>
 
  <script>   
 
 
 
function recuperer(param1,param2,param3)
{
 document.reservationForm.whs.value=param1;
 document.reservationForm.art.value=param2;
 document.reservationForm.pro.value=param3;
 
 
setHidden('afficher',document.reservationForm);
document.reservationForm.submit();
}
 
function retirer(param1,param2,param3)
{
 document.reservationForm.whs.value=param1;
 document.reservationForm.art.value=param2;
 document.reservationForm.pro.value=param3;
 
 
setHidden('Retirer',document.reservationForm);
document.reservationForm.submit();
}
 
 
  </script>
 
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
 
 
  </head>
 
  <body onload="modifreserv(document.reservationForm);">
 
 <layout:img src="../images/entete2.JPG" width="100%"/>
 
 
 <jsp:include page="menu.jsp"/> 
 <hr>
 
 
     <layout:form action="/listreserv.do" method="post" styleClass="PANEL">>
 
      <layout:text property="hidden" value="default" mode="H,H,H"></layout:text>
       <layout:text property="hiddenTest"  mode="H,H,H"></layout:text>
       <layout:text property="hiddenTest2"  mode="H,H,H"></layout:text>
      <layout:text property="art"  mode="H,H,H"></layout:text>
      <layout:text property="whs"  mode="H,H,H"></layout:text>
      <layout:text property="pro"  mode="H,H,H"></layout:text>
      <layout:text property="hlr"  mode="H,H,H"></layout:text>
      <layout:text property="pq"  mode="H,H,H"></layout:text>
      <layout:text property="qte"  mode="H,H,H"></layout:text>
 
        <layout:row>
      <layout:column>
       <layout:text property="trans" key="Réservation n°:" mode="R,R,R">
      </layout:text>
      </layout:column>
 
       <layout:column>
  <layout:text property="destinataire" key="distributeur:" mode="R,R,R"></layout:text>
 </layout:column>
 
      </layout:row>
 
 
           <layout:row >
             <layout:column width="100" ></layout:column>
             <layout:column></layout:column>
              <layout:column >
                <layout:submit onclick="setHidden('modifier',document.reservationForm);">Enregistrer les modifications</layout:submit>
              </layout:column>
              <layout:column></layout:column>
              <layout:column >
               <layout:submit onclick="setHidden('annuler',document.reservationForm);">Annuler la réservation</layout:submit>
              </layout:column>
 
                  <layout:column>
 
          <layout:textarea property="note" key="Note :"></layout:textarea>
 
           </layout:column>
             </layout:row>  
 
 
 
 
 
 
           <layout:collection id="item" name="reservationForm" property="reserv"  styleClass="SCROLL" styleClass="FORM" width="700" height="400">
 
         <layout:collectionItem title="ARTICLE" property="art" sortable="true"></layout:collectionItem>
            <layout:collectionItem title="PROFIL" property="prof" sortable="true"></layout:collectionItem>
 
              <layout:collectionItem title="QTE" property="qte" sortable="true"></layout:collectionItem>         
 
 <layout:collectionItem title="+" property="ajouter" >
             <center> <layout:image  onclick="recuperer('${item.art}','${item.prof}','${item.qte}');" src="../images/add.JPG" border="0"></layout:image> </center>
           </layout:collectionItem>  </layout:collection>
 
 
 
 
 
 
 
  <layout:write   name="reservationForm"  property="writ1"  ></layout:write>
       <layout:row>
          <layout:column>
       <layout:collection  id="item1"  indexId="index" name="reservationForm" property="reserv2" styleClass="SCROLL" styleClass="FORM" width="700" height="120">
 
            <layout:collectionItem title="ARTICLE" property="aa" sortable="true"></layout:collectionItem>
           <layout:collectionItem title="PROFIL" property="pp" sortable="true"></layout:collectionItem>  
 
 
 
    <layout:collectionItem title="QTE ">
              <layout:text property="reserv2[${index}].qt" layout="false"/>
           </layout:collectionItem> 
 
<layout:collectionItem title="X" property="retirer">
 
 <center> <layout:image  onclick="retirer('${item1.aa}','${item1.pp}','${item1.qt}');" src="../images/supp.JPG" border="0"></layout:image> </center>
 
        </layout:collectionItem>
    </layout:collection>
 
 
           </layout:column>
 
           </layout:row>
 
      </layout:form>
 
  </body>
</html:html>
normalement quand je clique sur le (+) d'une ligne de la 1ere collection je récupère les valeur de cette ligne et je l'ajout à la 2eme collection dans ma methode "afficher" voici son code
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
 
list = reservationForm.getReserv2();
 
 art = reservationForm.getArt();
System.out.println(art);
whs = reservationForm.getWhs();
System.out.println(whs);
 profil = reservationForm.getPro();
System.out.println(profil);
swp.setWh(wh);
swp.setAa(aa);
swp.setPp(pp);
 
list.add(swp);
 
reservationForm.setReserv2(list);
et quand je clique sur le (x) d'une ligne de la 2me collection cette ligne est supprimé dans la méthode "Retirer"
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
 
list = reservationForm.getReserv2();
 
 art = reservationForm.getArt();
System.out.println(art);
whs = reservationForm.getWhs();
System.out.println(whs);
 profil = reservationForm.getPro();
System.out.println(profil);
for (int i=0; i<list.size();i++){
 
Reserv2 list2 = (Reserv2)list.get(i);
 
 
 
 
				if ((   list2.getAa().equals(art))
					  &&(list2.getPp().equals(profil))
					  &&(list2.getWh().equals(whs))
 
 
				) 
				{
					System.out.println("dans le if");
				}
 
				else{
					nouv.add(list2);
 
				}
 
				}
 
				reservationForm.setReserv2(nouv);
mais le problème qui ce pose c'est que quand je clique sur le(+) ou le (x)
j'ai le message d'erreur suivant:
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
 
javax.servlet.ServletException: BeanUtils.populate
	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
	org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 
 
cause mère 
 
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	java.util.ArrayList.RangeCheck(Unknown Source)
	java.util.ArrayList.get(Unknown Source)
	org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:503)
	org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:410)
	org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:752)
	org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:783)
	org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:793)
	org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:726)
	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
	org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
quand j'ai enlevé le champs modifiable de la 2eme collection y'a plus le message
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
     <layout:collection  id="item1"  indexId="index" name="reservationForm" property="reserv2" styleClass="SCROLL" styleClass="FORM" width="700" height="120">
 
            <layout:collectionItem title="ARTICLE" property="aa" sortable="true"></layout:collectionItem>
           <layout:collectionItem title="PROFIL" property="pp" sortable="true"></layout:collectionItem>  
 
 
<layout:collectionItem title="X" property="retirer">
 
 <center> <layout:image  onclick="retirer('${item1.aa}','${item1.pp}','${item1.qt}');" src="../images/supp.JPG" border="0"></layout:image> </center>
 
        </layout:collectionItem>
    </layout:collection>
je ne comprend pas
SVP aidez moi je suis vraiment bloqué