Bonjour,

J'ai l'erreur suivante quand j'éxecute une page où j'ai deux boutons Submit vers la même LookUpDispatchAction:
javax.servlet.ServletException: Request[/refreshComm] does not contain handler parameter named submit
J'ai pourtant suivi la FAQ sur Struts à ce sujet (cf: ici) et consulté le précédent topic relatant ce sujet (ici )

Donc oivic ce que j'ai fait:
Dans mon struts-config.xml
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>
Code de RefreshCommAction
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;
    }
 
}
Vous noterez la présence de getKeyMethodMap():
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;
    }
Clés dans le ressource.bundle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
common.filter.submit.all=Tout
common.filter.submit=Filtrer
Et le code concerné dans la JSP
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>
				&nbsp;
				<html:submit property="submit">
					<bean:message key='common.filter.submit'/>
				</html:submit>				
			</div>
Voilà. La raison pour laquelle je n'utilise pas de JavaScript est par souci d'accessibilité (si un de mes utilisateurs le désactive...).

Merci d'avance

Nicolas