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 :
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");
}
Mon validation.xml
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>
Ma paje jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ....