[Struts 1.2.9] DynaActionForm et getter manquant
Bonjour,
Je suis en train de suivre le tutoriel de Serge Tahé : ftp://ftp-developpez.com/tahe/fichie...ive/struts.pdf
Je bloque au chapitre IV Les formulaires dynamique
J'ai comme erreur :
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method for property: "name" of bean: "com.myapp.struts.PersonneDynaForm"
Biens sur que je n'ai pas de méthode getter car l'interet est de ne pas en avoir lorsque l'on utilise DynaActionForm en déclarant les noms des champs directement dans struts-config avec la balise form-property dans form-bean.
Enfin bon c'est ce que j'ai cru comprendre.
Pourquoi d'apres ai je cette erreur ?
struts-config.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<form-bean
name="PersonneDynaForm"
type="com.myapp.struts.PersonneDynaForm">
<form-property name="nom" type="java.lang.String" initial="" />
</form-bean>
<action
input="/erreurs.do"
name="PersonneDynaForm"
path="/main"
scope="session"
type="com.myapp.struts.FormulaireDynaAction"
>
<forward name="reponse" path="/reponse.do"/>
</action> |
La classe Action form : PersonneDynaForm.java
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
|
package com.myapp.struts;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class PersonneDynaForm extends org.apache.struts.action.DynaActionForm {
public PersonneDynaForm() {
super();
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
String nom = (String) this.get("nom");
if (nom == null || nom.trim().equals("")) {
errors.add("name", new ActionMessage("error.name.required"));
// TODO: add 'error.name.required' key to your resources
}
return errors;
}
} |
La classe Action :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public class FormulaireDynaAction extends org.apache.struts.action.Action {
private final static String SUCCESS = "reponse";
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
PersonneDynaForm formulaire = (PersonneDynaForm) form;
request.setAttribute("nom", "dynamique " + formulaire.get("nom"));
return mapping.findForward(SUCCESS);
}
} |