Bonsoir,
Je souhaite faire un formulaire pré rempli, éditable par l'utilisateur.
J'utilise donc :
- des textfield
- une action show qui me rempli les champs et récupère quelques autres infos (implements preparable)
- une action save qui valide ce que rentre l'utilisateur et enregistre les nouvelles données.
Je distingue 4 cas possibles :
- l'affichage simple de la feuille.
- l'annulation des modifications par l'utilisateur
- la validation des champs
- l'enregistrement des infos.
Seulement voilà :s
Je vous montre mon struts.xml pour mieux comprendre:
L'annulation renvoit INPUT, et fait donc un redirect action de saveEnt vers showEnt. Pas de pb.
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 <action name="showEnt" class="com.formation.struts.actions.Entreprise_showAction"> <interceptor-ref name="store"> <param name="operationMode">RETRIEVE</param> </interceptor-ref> <interceptor-ref name="webFormation.interceptors"/> <result name="success" type="tiles">site.contact.showEntreprise</result> <result name="input" type="tiles">site.contact.showEntreprise</result> </action> <action name="saveEnt" class="com.formation.struts.actions.Entreprise_saveAction"> <interceptor-ref name="store"> <param name="operationMode">STORE</param> </interceptor-ref> <interceptor-ref name="webFormation.interceptors"/> <result name="success" type="redirect-action"> <param name="actionName">showEnt</param> <param name="id">${ent.id}</param> </result> <result name="input" type="redirect-action"> <param name="actionName">showEnt</param> <param name="id">${ent.id}</param> </result> </action>
L'enregistrement renvoit un SUCCESS, et fait aussi un redirect action de saveEnt à showEnt. Tjs pas de pb.
Par contre, la validation de l'enregistrement est la suivante :
Et on dirait que le addActionError "intercepte" le INPUT associé, ce qui empêche le redirect-action vers le showEnt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Override public void validate() { if (--pb avec mes champs--) { addActionError("Vous devez renseigner les champs obligatoires.") ; } }
Resultat: mon formulaire est vide avec seulement le message d'erreur !
Impossible de faire une validation des champs dans ces conditions.
Pleaz help![]()
Partager