[Struts 1.3.5] BeanUtils.populate
Bonsoir,
Ça faisait longtemps que je n'avais pas vu cette erreur :
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 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) |
Je me rappelle qu'il s'agit d'un bean supposé être en scope session, mais je ne me souviens plus comment faire.
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 :
Code:
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;
}
} |
Stockage du bean avant appel du formulaire :
Code:
1 2 3 4
|
request.getSession().setAttribute(Constantes.AttribJourneeModifiee, j);
request.setAttribute(Constantes.AttribNumeroJournee, f.getAction());
return mapping.findForward("JOURNEE_MODIFIEE"); |
Formulaire :
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
|
<%@ 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> |
Quand j'appuie sur le bouton submit, l'exception se produit...
Merci à toute personne qui pourrait m'aider.