Erreur avec LookUpDispatchAction
Bonjour,
J'ai l'erreur suivante quand j'éxecute une page où j'ai deux boutons Submit vers la même LookUpDispatchAction:
Citation:
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:
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:
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:
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:
1 2
| common.filter.submit.all=Tout
common.filter.submit=Filtrer |
Et le code concerné dans la JSP
Code:
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> |
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 :D
Nicolas