Hello
Je reviens sur un soucis de mapping suite au "remapping" de l'appli que j'ai effectué hier... dans une de mes actions, je passe deux fois dans la méthode execute, et je suis incapable de trouver la raison de ce double passage.
J'ai donc, dans mon struts-config.xml
Rien d'exceptionnel... L'action "chairmanWriteEmailPage" affiche la jsp permettant la saisie d'un mail et contient un formulaire de saisie basique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <form-bean name="chairmanSendEmailForm" type="formBeans.ChairmanSendEmailForm"/> ... <action path="/chairmanWriteEmailPage" parameter="/jsp/chairman/chairmanWriteEmail.jsp" type="org.apache.struts.actions.ForwardAction"/> <action path="/chairmanSendEmail" input="/chairmanWriteEmailPage.do" name="chairmanSendEmailForm" type="actions.ChairmanSendEmailAction" validate="true"> <forward name="mailOK" path="/chairman.do"/> <forward name="mailNotOK" path="/chairmanWriteEmailPage.do"/> </action>
Une fois le formulaire validé via "ChairmanSendMailForm.java", je suppose donc que struts passe dans le fichier "ChairmanSendEmailAction.java" que je spécifie dans le struts-config.xml...
Code : Sélectionner tout - Visualiser dans une fenêtre à part <html:form method="post" action="chairmanSendEmail.do" >
Voici grosso modo le contenu de cette action (très raccourcie ^^) :
A partir d'ici le problème est simple... A la soumission du formulaire, mon arrayList s'affiche deux fois... et je ne comprends pas pourquoi, cela signifie qu'il passe DEUX fois dans la méthode execute() de l'action... J'ai testé, il passe également deux fois dans le formBean...
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 public ActionForward execute.... { ... //récupération des différents attributs session / requête en cours ArrayList<String> to = new ArrayList<String>(); Connection cnx = source.getConnection(); //connexion base ... ps.executeQuery(); ... //exécution requête, récupération résultat etc... [...] while (rs.next()) { if (rs.getString(1)!=null) //ajout du résultat 1 dans l'arraylist... to.add(rs.getString(1)); } //suivi d'un test de l'array list... for (int i=0; i<to.size(); i++) System.out.println(to.get(i).toString()); }
Je ne vois pas l'erreur de forward, qqun pourrait m'aiguiller ?
Merci beaucoup![]()
Partager