Bonjour à tous,

Je travaille avec la version 1.1 de Struts (pas possible d'utiliser une version plus récente car imposé par le client … hic )
J'utilise les plugins Tiles et Validator définit comme suit dans le fichier struts-config.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
18
19
 
<!-- Tiles request processor -->  
<controller processorClass="fr.improve.struts.taglib.layout.workflow.LayoutRequestProcessor" bufferSize="4096" debug="0" />
 
 
<!-- Plugins -->
<plug-in className="org.apache.struts.tiles.TilesPlugin">
	<set-property property="definitions-config" value="/WEB-INF/config/tiles-defs.xml"/>
		<set-property property="moduleAware" value="true" />
		<set-property property="definitions-parser-validate" value="true" /> 		
</plug-in>
 
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property property="pathnames" value="/WEB-INF/config/validator-rules.xml,/WEB-INF/config/validation.xml"/>
</plug-in>
 
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property property="pathnames" value="/WEB-INF/config/validator-rules.xml,/WEB-INF/config/validation.xml"/>
</plug-in>
Je rencontre un problème lorsque je souhaite mettre en place la validation d'un formulaire côté serveur via l'implémentation de la méthode validate() du bean formulaire. Mon action est définie comme suit dans le struts-config.xml:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<action  parameter="dispatch" name="domaineForm" 
     path="/DomaineAction" input="list" validate="true"
     type="com.xxx.yyy.actions.DomaineAction">
	<forward name="list" path="admin.domaine"/>
	<forward name="edit" path="edit.domaine"/>	  
</action>
J’obtiens l’erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
java.lang.IllegalArgumentException: Le chemin list ne commence pas par le caractère "/"
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
	org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
Si je positionne l'attribut validate()à false, je n'ai plus cette erreur ... mais du coup, la méthode validate() de mon bean form n'est pas appelée Par ailleurs, la validation côté client en javascript fonctionne très bien avec les tiles.

Auriez vous une idée ?

Merci d'avance

Dov