Bonjour à tous!
J'ai un probleme particulièrement curieux.
J'ai un formulaire jsp qui contient plusieurs html:submit. J'ai donc utilisé un LookupDispatchAction pour pouvoir rediriger vers les actions correspondantes selon le submit qui a été cliqué.
J'ai juste un html:reset a la fin de mon formulaire et donc j'ai redefini la methode reset(ActionMapping mapping, HttpServletRequest request) dans mon ActionForm.
Ce qui est très curieux est que lorsque je clique sur n'importe quel bouton submit, la methode reset est appelée et lorsque je clique sur le boutton reset, rien ne se passe, la methode reset n'est pas appelée...
Voici un peu de code:
mon struts-config (juste les actions, mon form s'appelle ChangementAccesForm):
Ma page jsp -le formulaire en version simplifiée:
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <action path="/afficherSaisieCAAction" name="ChangementAccesForm" validate="false" scope="session" type="com.francetelecom.reflet.ihm.action.changementAcces.SaisieCAAction" className="com.francetelecom.reflet.ihm.action.RefletActionMapping"> <forward name="succes" path="/jsp/chgtAcces/SaisieCA.jsp"/> </action> <!-- clic sur bouton annuler --> <action path="/annulerSaisieCAAction" name="ChangementAccesForm" validate="false" scope="session" type="com.francetelecom.reflet.ihm.action.changementAcces.AnnulerSaisieCAAction" className="com.francetelecom.reflet.ihm.action.RefletActionMapping"> <forward name="succes" path="/jsp/chgtAcces/SaisieCA.jsp"/> </action> <action path="/validerSaisieCALookupDispatchAction" validate="true" input="/jsp/chgtAcces/SaisieCA.jsp" name="ChangementAccesForm" parameter="method" scope="session" type="com.francetelecom.reflet.ihm.action.changementAcces.ValiderSaisieCALookupDispatchAction" className="com.francetelecom.reflet.ihm.action.RefletActionMapping"> <forward name="validerDepartement" path="/validerDepartementSaisieCAAction.do"/> <forward name="validerCommune" path="/validerCommuneSaisieCAAction.do"/> <forward name="validerVoie" path="/validerVoieSaisieCAAction.do"/> <forward name="valider" path="/validerSaisieCAAction.do"/> </action> <!-- clic sur bouton valider département --> <action path="/validerDepartementSaisieCAAction" validate="false" name="ChangementAccesForm" scope="session" type="com.francetelecom.reflet.ihm.action.changementAcces.ValiderDepartementSaisieCAAction" className="com.francetelecom.reflet.ihm.action.RefletActionMapping"> <forward name="succes" path="/jsp/chgtAcces/SaisieCA.jsp"/> <forward name="echec" path="/jsp/chgtAcces/SaisieCA.jsp"/> </action> <!-- clic sur bouton valider commune --> <action path="/validerCommuneSaisieCAAction" validate="false" name="ChangementAccesForm" scope="session" type="com.francetelecom.reflet.ihm.action.changementAcces.ValiderCommuneSaisieCAAction" className="com.francetelecom.reflet.ihm.action.RefletActionMapping"> <forward name="succes" path="/jsp/chgtAcces/SaisieCA.jsp"/> <forward name="echec" path="/jsp/chgtAcces/SaisieCA.jsp"/> </action> <!-- clic sur bouton valider voie --> <action path="/validerVoieSaisieCAAction" validate="false" name="ChangementAccesForm" scope="session" type="com.francetelecom.reflet.ihm.action.changementAcces.ValiderVoieSaisieCAAction" className="com.francetelecom.reflet.ihm.action.RefletActionMapping"> <forward name="succes" path="/jsp/chgtAcces/SaisieCA.jsp"/> <forward name="echec" path="/jsp/chgtAcces/SaisieCA.jsp"/> </action> <!-- clic sur bouton valider --> <action path="/validerSaisieCAAction" validate="false" parameter="method" name="ChangementAccesForm" scope="session" type="com.francetelecom.reflet.ihm.action.changementAcces.ValiderSaisieCAAction" className="com.francetelecom.reflet.ihm.action.RefletActionMapping"> <forward name="succesRechercheSansAdresse" path="/jsp/chgtAcces/ResultatCAND.jsp"/> <forward name="succesRechercheAvecAdresse" path="/jsp/chgtAcces/ResultatCAADR.jsp"/> <forward name="echec" path="/jsp/chgtAcces/SaisieCA.jsp"/> </action>
Et enfin la redefinition de la methode reset où je recupere le paramètre method:
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
22
23
24
25
26
27 <html:form action="/validerSaisieCALookupDispatchAction" styleId="etude_ca"> <html:select property="departement"> <html:optionsCollection name="ChangementAccesForm" property="departements"/> </html:select> <html:submit property="method" styleClass="submitBouton"> <bean:message key="changementAcces.demande.departement.validerLookup"/> </html:submit> <html:text styleId="commune" name="ChangementAccesForm" property="chgAccesDemandeBean.communesDemandeBean.communePartielle" ></html:text> <html:submit property="method" styleClass="submitBouton"> <bean:message key="changementAcces.demande.commune.rechercherLookup"/> </html:submit> <p class="ligne_bouton"> <html:submit property="method" styleClass="submitBouton"> <bean:message key="changementAcces.demande.valider"/> </html:submit> <html:reset property="method" value=" " styleClass="resetBouton" altKey="changementAcces.demande.annuler"> <bean:message key="changementAcces.demande.annuler"/> </html:reset> </p> </html:form>
Est ce que quelqu'un a déjà eu une telle erreur ou a une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public void reset(ActionMapping mapping, HttpServletRequest request) { //verification du bouton qui a été cliqué if(request.getParameter("method")!=null){ System.out.println(request.getParameter("method")); }else{ System.out.println("request.getParameter(\"method\") null"); } }
Merci d'avance
Partager