Bonjour,
J'aimerais tester les validators de Struts.
Cela fonctionne. Lorsque je ne saisis pas de nom, je reviens sur ma page page JSP.
Sauf que malheureusement je n'arrive pas à afficher le message d'erreur que j'ai précisé dans mon validator (ou plutot le fichier de propriété) dans ma page JSP ....
Contexte technique
form_co.jsp : formulaire ou je rentre les coordonnées d'une personne
GestionCo.java : action dérivant d'un DispatchAction avec les 2 méthodes suivantes :
- GestionCo.edit qui prérempli le formulaire
- GestionCo.save qui sauvegarde
Dans mon action (dans struts-config),
- j'ai précisé le input pour préciser la page en cas d'erreur
- j'ai positionné validate à false pour ne pas qu'il y ait de validation qu'il y ait l'affichage de la page jsp
Mon struts-config :
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 <action path="/GestionCo" type="ac.crm.struts.action.GestionCo" name="GestionCo" parameter="action" input="/pages/auth/form_co.jsp" validate="false" scope="request"> <forward name="home" path="/MainPage.do" /> <forward name="login" path="/pages/auth/login_co.jsp" /> <forward name="auth" path="/pages/auth/auth_co.jsp" /> <forward name="form" path="/pages/auth/form_co.jsp" /> <forward name="edit" path="/GestionCo.do?action=edit" /> <forward name="save" path="/Adm_Co.do?action=list" /> </action> .... <message-resources parameter="MessageResources" /> ...... <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/> </plug-in> </struts-config>
Dans ma méthode GestionCo.save :
Mon validation.xml
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 public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionMessages errors = form.validate(mapping, request); if ( !errors.isEmpty() ) { this.saveErrors(request, errors); return mapping.getInputForward() ; } ..... .... return mapping.findForward("save"); }
Ma paje jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <form name="GestionCo"> <field property="lastname" depends="required"> <arg key="commercial.errors.lastname"/> </field> </form>
lastname est bien sur une propriété de mon form-bean.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<html:errors/> <html:text property="lastname" />
Comme je disais, le validator fonctionne très bien. Il empeche la validation mais malheuresement je n'arrive pas à afficher l'erreur ....
Partager