Afficher les messages d'erreur de validator
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:
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 :
Code:
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");
} |
Mon validation.xml
Code:
1 2 3 4 5 6
|
<form name="GestionCo">
<field property="lastname" depends="required">
<arg key="commercial.errors.lastname"/>
</field>
</form> |
Ma paje jsp :
Code:
1 2
| <html:errors/>
<html:text property="lastname" /> |
lastname est bien sur une propriété de mon form-bean.
Comme je disais, le validator fonctionne très bien. Il empeche la validation mais malheuresement je n'arrive pas à afficher l'erreur ....