Bonsoir,
Ça faisait longtemps que je n'avais pas vu cette erreur :
Je me rappelle qu'il s'agit d'un bean supposé être en scope session, mais je ne me souviens plus comment faire.
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 exception javax.servlet.ServletException: BeanUtils.populate org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) cause mère javax.servlet.ServletException: BeanUtils.populate org.apache.struts.util.RequestUtils.populate(RequestUtils.java:453) org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:45) org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:57) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) cause mère java.lang.NullPointerException org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:427) org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:340) org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:684) org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715) org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:884) org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811) org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298) org.apache.struts.util.RequestUtils.populate(RequestUtils.java:451) org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:45) org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:57) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Alors, pour mon cas, il s'agit d'un bean déjà initialisé en base de données qui sera modifié.
Le bean est le suivant :
Stockage du bean avant appel du formulaire :
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 public class JourneeForm extends ActionForm { /** * */ private static final long serialVersionUID = 1L; private RencontreForm[] liste; public void setListe(RencontreForm[] liste) { this.liste = liste; } public RencontreForm[] getListe() { return liste; } }
Formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 request.getSession().setAttribute(Constantes.AttribJourneeModifiee, j); request.setAttribute(Constantes.AttribNumeroJournee, f.getAction()); return mapping.findForward("JOURNEE_MODIFIEE");
Quand j'appuie sur le bouton submit, l'exception se produit...
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 <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="h" %> <%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="b" %> <%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="l" %> <%@ taglib uri="/WEB-INF/tld/struts-nested.tld" prefix="n" %> <b:define id="JOURNEE_MODIFIEE" name="JOURNEE_MODIFIEE" type="presentation.bean.JourneeForm" scope="session"/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <h:html> <head> <title><b:message key="application.nom"/></title> <link type="text/css" rel="stylesheet" href="<b:message key="application.path"/>/css/style.css"> </head> <body> <h1>Modifier une journée</h1> <h:form action="/validJournee.do"> <table class="match"> <tr> <th colspan="4" class="centre">Journée <b:write name="NUMERO_JOURNEE"/></th> <tr> <n:iterate name="JOURNEE_MODIFIEE" property="liste"> <tr> <td class="droite"><n:write property="labelEquipeR"/></td> <td class="centre"><n:text property="scoreR" maxlength="2" styleClass="score"/></td> <td class="centre"><n:text property="scoreV" maxlength="2" styleClass="score"/></td> <td class="gauche"><n:write property="labelEquipeV"/></td> </tr> </n:iterate> <tr> <td colspan="4" class="centre"><h:submit styleClass="vert" value="Valider"/></td> </tr> </table> </h:form> </body> </h:html>
Merci à toute personne qui pourrait m'aider.
Partager