Bonjour à tous,
voici mon pb : j'affiche un tableau et pour chaque ligne il y a une checkbox; je voudrais récupérer les id des cases coché dans une liste
Dans ma classe formulaire j'ai créer un objet de type String [] pour
contenir la valeur de chacune des checkbox; mais à l'exécution j'ai cette erreur:
Avant que je n'ajoute les checkbox tout allait très bien; ensuite j'arrive également à les afficher; mais ça plante ensuite lorsque je coche des cases et exécuter l'action essayer26 août 2010 12:45:14 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet action a généré une exception
java.lang.NullPointerException
at com.arabsoft.struts.action.ArticlesAction.essayer(ArticlesAction.java:184)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Voici des extraits de code :
listArticle.jsp
ArticlesForm.java
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 <html:form action="/listArticles"> <center> <display:table name="listArticle" id= "id" uid="moarticle" pagesize="10" class="displaytag" > <display:column property="codArt" title="Code Article" sortable="true"/> <display:column property="codUnit" title="Code Unité" sortable="true"/> <display:column property="desArt" title="Designation" sortable="true"/> <display:column property="typArt" title="Type Article" sortable="true"/> <display:column property="priVente" title="P.U" sortable="true"/> <display:column property="txTva" title="tx.TVA" sortable="true"/> <display:column media='html' paramId="id" paramProperty="id"> <html:checkbox property="choix" value="<%=(String) id%>"></html:checkbox> </display:column> </display:table> </center> </html:form> <p align="right"><a href="<%=request.getContextPath()%>/checkedaction.do?method=essayer">Essayer</a> <a href="<%=request.getContextPath()%>/JSP/Articles.jsp?">Retour</a></p> </body>
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
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 public class ArticlesForm extends ActionForm{ /** * */ private static final long serialVersionUID = 1L; static int i = 0; private String codArt; private String codUnit; private FArticleId id; private String desArt; private Integer priVente; private String typArt; private BigDecimal txTva; private String[] choix; //full Constructor public ArticlesForm(FArticleId id, String codArt, String codUnit, String desArt, Integer priVente, BigDecimal txTva, String typArt, String[] choix) { super(); this.id = id; this.codArt = codArt; this.codUnit = codUnit; this.desArt = desArt; this.priVente = priVente; this.txTva = txTva; this.typArt = typArt; this.choix = choix; } public ArticlesForm(){ this.id = null; this.codArt = null; this.codUnit = null; this.desArt = null; this.priVente = null; this.txTva = null; this.typArt = null; this.choix = null; } //Getters public FArticleId getId() { return id; } public String getCodArt() { return codArt; } public void setCodArt(String codArt) { this.codArt = codArt; } public String getDesArt() { return desArt; } public Integer getPriVente() { return priVente; } public String getTypArt() { return typArt; } public BigDecimal getTxTva() { return txTva; } public String getCodUnit() { return codUnit; } public String[] getChoix() { return choix; } public void setId(FArticleId id) { this.id = id; } public void setDesArt(String desArt) { this.desArt = desArt; } public void setTypArt(String typArt) { this.typArt = typArt; } public void setTxTva(BigDecimal txTva) { this.txTva = txTva; } public void setChoix(String c) { choix[i++] = c; } public void setCodUnit(String codUnit) { this.codUnit = codUnit; } public void setPriVente(Integer priVente) { this.priVente = priVente; } }
Sachant que (ArticlesAction.java:184) de la trace désigne cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public ActionForward essayer(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ System.out.println("inside essayer..."); ArticlesForm ArticleForm = (ArticlesForm) form; String[] liste1 = request.getParameterValues("choix"); System.out.println("liste1: "+ liste1.length); return null; }
Merci pour vos réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.out.println("liste1: "+ liste1.length);
Partager