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 :
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
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>
J’obtiens l’erreur suivante :
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>
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
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)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
Partager