Bonjour,
J'utilise un ActionForm, pour modifier les utilisateurs de mon application. J'ai bien lu la FAQ, et fait quelques recherches, mais je ne suis pas sûr de partir avec la bonne méthode.
Le principe est très simple. La classe ModifierUtilisateurAction fonctionne et me rempli correctement mon formulaire qui est composé d'un libellé (champ text) obligatoire et d'une liste déroulante (champ select) initialisée par la variable dddwProfile transmise par un
Quand on clique sur Enregistrer, on est emmené vers l'action EnregistrerUtilisateurAction. Tout s'enregistre quand les champ sont bien remplis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 //Constante.DDDW_CERBERE est une chaine de caractère contenant dddw_cerbere //Set Cerbere est un Set<String,String> request.setAttribute(Constante.DDDW_CERBERE,setCerbere);
Le libellé de l'utilisateur est obligatoire. J'ai surchargé la méthode validate de mon UtilisateurForm (héritant d'ActionForm). Le test fonctionne et me retourne vers mon tiles (page jsp). Mais là une exception JSP est levée et me dit en toute logique que dddwCerbere n'est pas initialisée.
Dans l'URL, je suis sur enregistrerUtilisateurAction et non pas sur modifierUtilisateurAction.ServletException in '/WEB-INF/jsp/admin/modifierUti.jsp' : Cannot find bean under name dddwCerbere.
Je m'y prends mal je pense, car je peux toujours recopier le traitement de ModifierUtilsateurAction et redéclarer ma liste déroulantea et tout cela, mais je pense que Struts n'est pas si stupide et que je ne devrais pas à le faire
Voici comment j'ai déclaré mes actions et mes Forms dans Struts :
Qu'est-ce que je dois faire pour que les traitements d'initialisation de mon ModifierUtilisateurAction ne soit pas à refaire dans EnregistrerUtilisateurAction quand le formulaire est mal rempli ?
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 <struts-config> <form-beans type="org.apache.struts.action.ActionFormBean"> <form-bean name="saisieUtiForm" id="utiForm" type="i2.application.vh.presentation.form.UtiForm" dynamic="false"> <icon> <large-icon id="admin_png">../../vh/images/admin.png</large-icon> </icon> </form-bean> </form-beans> <!-- ========== Action Mapping Definitions ============================== --> <action-mappings type="org.apache.struts.action.ActionMapping"> <!-- Interface du Back end --> <!-- Gestion des administrateurs --> <action path="/admin/listerUtiAction" type="i2.application.vh.presentation.securite.ListerUtiAction"> <forward name="succes" path=".adminListerUti" redirect="false" /> </action> <action path="/admin/modifierUtiAction" type="i2.application.vh.presentation.securite.ModifierUtiAction"> <forward name="succes" path=".adminModifierUti" redirect="false" /> </action> <action path="/admin/enregistrerUtiAction" type="i2.application.vh.presentation.securite.EnregistrerUtiAction" name="saisieUtiForm" scope="request" input=".adminModifierUti"> <forward name="succes" path=".adminListerUti" redirect="false" /> </action> </action-mappings> </struts-config>
Partager