Bonjour,

J'essaie d'utiliser les multibox de struts mais j'avoue avoir quelques difficultés.
Je l'indente de cette façon dans ma jsp :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<tr>
<td class="form1"><html:multibox property="circonstances" value="5"></html:multibox>1</td>
<td align="center" class="txt-bleufonce-10">en stationnement</td>
<td class="form1" align="right">1<input name="1B" type="checkbox" value="1B"></td>
</tr>
 
<tr>
<td class="form1"><html:multibox property="circonstances" value="6"></html:multibox>2</td>
<td align="center" class="txt-bleufonce-10">quittait un stationnement</td>
<td class="form1" align="right">2<input name="2B" type="checkbox" value="2B"></td>
</tr>
etc... jusqu'à 17.

De plus, j'ai un tableau (ArrayList) que j'initialise de la manière suivante dans mon Action :

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
 
circonstances = new ArrayList(16);
circonstances.add("");
circonstances.add("6");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
circonstances.add("");
Avec les méthodes suivantes :
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
 
public String getCirconstance(int index) {
  return ((String) circonstances.get(index));
}
 
public void setCirconstance(int index, String value) {
  constances.set(index, value);
}
 
/**
 * Returns the circonstances.
 * @return ArrayList
 */
public ArrayList getCirconstances() {
  return circonstances;
}
 
/**
 * Sets the ciconstances.
 * @param circonstances The circonstances to set
 */
public void setCirconstances(ArrayList circonstances) {
  this.circonstances = circonstances;
}
Mon problème est que lorsque je lance mon formulaire les cases sont bien initialisées avec la deuxième case cochée mais lorsque je veux valider mon formulaire et donc les cases cochées, l'erreur suivante m'est retournée :

c6b4ef8 RequestProces I org.apache.struts.action.RequestProcessor Processing a 'POST' for path '/recordDS'
c6b4ef8 WebGroup E SRVE0026E: [Erreur de servlet]-[BeanUtils.populate]: java.lang.IllegalArgumentException: argument type mismatch
at java.lang.reflect.Method.invoke(Native Method)
at org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1650)
at org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1545)
at org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1574)
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:919)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:726)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:978)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:779)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:246)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:258)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:872)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:491)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:173)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:199)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:114)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:187)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:331)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:432)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:343)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
Comme je le précise dans le titre du post, je suis novice en struts et malgré les recherches que j'ai faites sur le forum et google, je n'ai pas réussi à régler mon problème.

Est ce que cela inspire quelqu'un :

Merci.