Utiliser DynaActionForm pour un formulaire
	
	
		Bonjour,
Je débute avec struts et après quelques difficultés pour la configuration, je suis enfin arrivé à faire tourner quelques exemples basiques d'applications :yaisse2: .
J'ai vu qu'on pouvait utiliser la classe DynaActionForm pour gérer des formulaires sans avoir à créer l'ensemble des getters / setters à la main comme on doit le faire avec ActionForm.
J'ai donc fait les configurations suivantes :
- fichiers struts-config.xml
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 |  
...
 
	<form-beans>
		<form-bean name="frmPersonne" type="fr.personne.PersonneDynaForm" scope="session">
			<form-property name="nom" type="java.lang.String" initial=""/>
			<form-property name="age" type="java.lang.String" initial=""/>
		</form-bean>
	</form-beans>
 
... | 
 Dans ce fichier j'ai défini mon formulaire frmPersonne avec ses 2 champs nom et age.
- classe PersonneDynaForm pour gérer ce formulaire :
	Code:
	
| 12
 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
 
 |  
 
 
package fr.personne;
 
import javax.servlet.http.HttpServletRequest;
 
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
 
public class PersonneDynaForm extends DynaActionForm{
 
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
 
		ActionErrors erreurs = new ActionErrors();
		String nom = (String) this.get("nom");
		String age = (String) this.get("age");
 
		if(nom == null  ||  nom.trim().equals("")){
			erreurs.add("nomvide", new ActionError("personne.formulaire.nom.vide"));
		}
 
		if(age == null  ||  age.trim().equals("")){
			erreurs.add("agevide", new ActionError("personne.formulaire.age.vide"));
 
		}else{
 
			if(!age.matches("^\\s*\\d+\\s*$"))
				erreurs.add("ageincorrect", new ActionError("personne.formulaire.age.incorrect", age));
 
		}
 
		return erreurs;
 
	}
 
} | 
 - la page jsp dans laquelle est affiché le formulaire frmPersonne :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 |  
 
...
 
	<body>
		<h2>Formulaire - Personne</h2>
		<hr>
		<html:form action="/main" name="frmPersonne" type="fr.personne.PersonneDynaForm">
		<table>
			<tr>
				<td>Nom</td>
				<td><html:text property="nom"/></td>
			</tr>
			<tr>
				<td>Age</td>
				<td><html:text property="age"/></td>
			</tr>
		</table>
		<br/>
		<html:submit value="Envoyer"/> - <html:reset value="Rétablir"/> - <html:button property="btnEffacer" value="Effacer" onclick="javascript:effacer();"/>
		</html:form>
		<br/>
	</body>
 
... | 
 
Lorsque je tente d'accéder à ma page où se trouve le formulaire frmPersonne, j'obtiens une erreur me disant en gros qu'il n'arrive pas accéder à la propriété nom du formulaire.
Cela est normal en fait car le controleur doit tenter d'utiliser la propriété nom puis age de PersonneDynaForm mais ces propriétés n'existent pas encore à ce moment là s'il y a une erreur.
Comment doit je procéder pour configurer mon formulaire dans la page jsp ?
Merci d'avance de votre aide.
Sylvain