Problème taille d'un String et checkbox coché
Bonjour à tous
J'ai un problème au niveau de la taille d'un tableau de String. Ce tableau contient tous les identifiants de mes Joueurs qui sont inscrit dans une équipe et je les affiche dans ma jsp comme ceci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <TABLE border="0">
<TBODY>
<TR>
<TH>Id du joueur</TH>
<TH>Pseudo</TH>
<TH>Supprimer</TH>
</TR>
<logic:iterate id="id_joueurs_equipe_id" name="BeanEquipe" property="id_joueurs_equipe" indexId="index">
<%if(id_joueurs_equipe_id!=null){ %>
<TR>
<TD><bean:write name="BeanEquipe" property='<%= "id_joueurs_equipe[" + index + "]" %>' /></TD>
<TD><bean:write name="BeanEquipe" property='<%= "pseudo_joueurs[" + index + "]" %>' /></TD>
<TD><html:checkbox property='<%="chk["+index+"]"%>'></html:checkbox></TD>
<TD><input type="hidden" name="id_joueurs_equipe" value = <%="\""+id_joueurs_equipe_id+"\""%>/></TD>
</TR>
<%} %>
</logic:iterate>
</TBODY>
</TABLE>
<html:submit property="submit" value="Modifier" /> |
Lorsque je coche un joueur quelconque, celui ci sera supprimer lorsque je clic sur mon bouton pour aller dans mon formulaire.
Le traitement s'effectue comme cela dans mon ActionForm
Code:
1 2 3 4 5 6 7 8 9 10
| int i=0;
while(id_joueurs_equipe[i]!=null){
check = (String) request.getParameter("chk["+i+"]");
if(check!=null){
int id_joueurs = Integer.parseInt(id_joueurs_equipe[i]);
JoueursDB player = JoueursDB.rechJoueursNum(id_joueurs);
player.setId_equipe(0);
player.modifier();
}
i++; |
Le problème c'est qu'il me renvoie toujours une exception quand il arrive à la valeur null du tableau
Code:
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
| [3/01/08 10:25:27:188 CET] 0000002f ServletWrappe E SRVE0068E: Impossible d'appeler la méthode service() sur le servlet action. Exception : java.lang.NullPointerException
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:441)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2837)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:548)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:601)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332)
[3/01/08 10:25:27:219 CET] 0000002f LocalTranCoor E WLTC0017E: Ressources annulées car la méthode setRollbackOnly() a été appelée.
[3/01/08 10:25:27:250 CET] 0000002f WebApp E SRVE0026E: [Erreur de servlet]-[action]: java.lang.NullPointerException
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:441)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2837)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:548)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:601)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332) |
et j'ai remarqué également que si je coche la checkbox, il me retourne null également. Auriez-vous une solution à mon problème ?
D'avance merci