Bonjour,
J'ai l'erreur suivante quand j'éxecute une page où j'ai deux boutons Submit vers la même LookUpDispatchAction:
J'ai pourtant suivi la FAQ sur Struts à ce sujet (cf: ici) et consulté le précédent topic relatant ce sujet (ici )javax.servlet.ServletException: Request[/refreshComm] does not contain handler parameter named submit
Donc oivic ce que j'ai fait:
Dans mon struts-config.xml
Code de RefreshCommAction
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <action path = "/refreshComm" name = "commFilterForm" scope = "session" type = "com.thalys.localys.web.action.message.RefreshCommAction" parameter = "submit"> <forward name="success" path="message.communications" /> </action>
Vous noterez la présence de getKeyMethodMap():
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
36
37
38
39
40
41 package ...; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.LookupDispatchAction; ... public class RefreshCommAction extends LookupDispatchAction { public ActionForward filter(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Logger.getInstance().debug(this,"method filter"); return mapping.findForward(Forwards.SUCCESS); } public ActionForward allToday(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Logger.getInstance().debug(this,"method AllToday"); return mapping.findForward(Forwards.SUCCESS); } protected Map getKeyMethodMap() { Map map = new HashMap(); map.put("common.filter.submit.all", "allToday"); map.put("common.filter.submit", "filter"); return map; } }
Clés dans le ressource.bundle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 protected Map getKeyMethodMap() { Map map = new HashMap(); map.put("common.filter.submit.all", "allToday"); map.put("common.filter.submit", "filter"); return map; }
Et le code concerné dans la JSP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 common.filter.submit.all=Tout common.filter.submit=Filtrer
Voilà. La raison pour laquelle je n'utilise pas de JavaScript est par souci d'accessibilité (si un de mes utilisateurs le désactive...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <div class="submit"> <html:submit property="submit"> <bean:message key='common.filter.submit.all' /> </html:submit> <html:submit property="submit"> <bean:message key='common.filter.submit'/> </html:submit> </div>
Merci d'avance![]()
Nicolas
Partager