[ STRUTS ] Probleme LookupDispatchAction
Bonjour à tous,
J'ai vu dans la F.A.Q Struts que, pour gerer plusier bouton submit dans une formulaire sans JavaScript, l'Action associée à ce formulaire devait hériter de "LookupDispatchAction". J'ai suivis les différentes étapes:
Ajout de l'attribut "parameter" dans struts-config.xml pour l'Action concernée:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <action
attribute="gererUnitesForm"
input="/pages/GererUnites.jsp"
name="gererUnitesForm"
parameter="submit"
path="/gererUnites"
scope="request"
type="com.plansactions.struts.action.GererUnitesAction">
<forward name="succes" path="/pages/GererUnites.jsp" />
<forward name="selectionChanged" path="/pages/GererUnites.jsp" />
<forward name="echec" path="/pages/Erreur.jsp" />
</action> |
Faire hériter la classe de l'Action de LookupDispatchAction et ecrire les méthodes nécessaires:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| protected Map getKeyMethodMap() {
Map map = new HashMap();
map.put("boutton.ajouter", "ajouter");
map.put("boutton.supprimer", "supprimer");
map.put("boutton.mettreAJour", "mettreAJour");
return map;
}
public ActionForward ajouter(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
...
}
public ActionForward supprimer(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
...
}
public ActionForward mettreAJour(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
...
} |
Ajout des cle dans le RessourceBundle:
Code:
1 2 3
| boutton.ajouter=ajouter
boutton.supprimer=supprimer
boutton.mettreAJour=mettre a jour |
Et enfin le code concerné de la jsp:
Code:
1 2 3 4 5 6 7 8 9 10
|
<html:submit>
<bean:message key="boutton.ajouter"/>
</html:submit><BR>
<html:submit>
<bean:message key="boutton.mettreAJour"/>
</html:submit><BR>
<html:submit>
<bean:message key="boutton.supprimer"/>
</html:submit><BR> |
Aucun probleme lors du deploiement ni de l'affichage de la jsp mais losque je clique sur un des bouton:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
exception
javax.servlet.ServletException: Request[/gererUnites] does not contain handler parameter named submit
org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:199)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) |
J'ai trouve plusieurs posts sur le forum traitant du sujet mais avec du JavaScript et donc la classe DispatchAction et non la classe LookupDispatchAction.
Quelqu'un aurait-il déjà rencontré le problème et rouvé la solution? Est-ce mon code ou celui de la FAQ qui pose problème?
Merci d'avance pour vos réponses :wink: .