LookupDispatchAction - Exception
Bonjour,
J'essaye d'utiliser le LookupDispatchAction pour avoir 2 boutons de soumission pour 1 seule action.
Malheureusement je coince sur l'exception suivante lorsque je clic sur mon bouton "Verification":
Citation:
javax.servlet.ServletException: Action[/MajFichier] missing resource in key method map
org.apache.struts.actions.LookupDispatchAction.getLookupMapName(LookupDispatchAction.java:230)
org.apache.struts.actions.LookupDispatchAction.getMethodName(LookupDispatchAction.java:271)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:173)
org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:150)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
ter.logement.gui.IdLogementController.process(IdLogementController.java:41)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
java.security.AccessController.doPrivileged(Native Method)
ter.logement.tools.gui.DefaultFilter.doFilter(DefaultFilter.java:53)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:217)
Pourtant tout me semble correct.
Merci pour votre aide.
Voici mon stuts-config.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<form-beans>
<form-bean name="FB_FICHIER" type="ter.logement.gui.admin.FbSelectionFichier">
<form-property name="ValidationMAJ" type="java.lang.String"/>
</form-bean>
</form-beans>
<action-mappings>
<action
path="/MajFichier"
type="ter.logement.gui.admin.EnvAcFichierAction"
name="FB_FICHIER"
scope="request"
validate="true"
input="/admin/MiseaJourMasse.jsp"
parameter="ValidationMAJ">
<forward name="succes" path="/admin/MiseaJourMasse.jsp"/>
</action>
</action-mappings> |
Voici ma JSP:
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
<%@ page contentType="text/html;charset=windows-1252"%>
<%@ taglib uri="/WEB-INF/struts-html" prefix="html"%>
<%@ taglib uri="/WEB-INF/cc-forms" prefix="forms"%>
<%@ taglib uri="/WEB-INF/cc-base" prefix="base"%>
<%@ taglib uri="/WEB-INF/ter-composants" prefix="tercomposant"%>
<%@ taglib uri="/WEB-INF/struts-bean" prefix="bean"%>
<html:html locale="true">
<head>
<title>Mise à jour en masse de logements</title>
</head>
<body>
<html:form action="/MajFichier" method="post"
enctype="multipart/form-data">
<table>
<tr>
<td align="center" colspan="2"><font size="4">Sélectionner
le fichier à importer</font></td>
</tr>
<tr>
<td align="left" colspan="2"><font color="red"><html:errors /></font>
</td>
</tr>
<tr>
<td align="right">Saisie du chemin du fichier</td>
<td align="left"><html:file property="theFile" /></td>
</tr>
<tr>
<td align="center" colspan="2">
<html:submit property="ValidationMAJ">
<bean:message key="button.validation"/>
</html:submit>
<html:submit property="ValidationMAJ">
<bean:message key="button.maj"/>
</html:submit>
</td>
</tr>
</table>
</html:form>
</body>
</html:html> |
J'ai renseigné dans mon fichier resources.properties le nom de mes boutons:
Code:
1 2 3
|
button.validation=Verification
button.maj=MAJ |
et mes méthodes associés sont:
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
package ter.logement.gui.admin;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.util.HashMap;
import java.util.Map;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import org.apache.struts.actions.LookupDispatchAction;
import java.io.IOException;
public class EnvAcFichierAction extends LookupDispatchAction
{
protected Map getKeyMethodMap() {
Map<String, String> map = new HashMap<String, String>();
map.put("button.validation", "validation");
map.put("button.maj", "miseajour");
return map;
}
public ActionForward validation(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
FbSelectionFichier myForm = (FbSelectionFichier) form;
// Process the FormFile
FormFile myFile = myForm.getTheFile();
String contentType = myFile.getContentType();
String fileName = myFile.getFileName();
int fileSize = myFile.getFileSize();
byte[] fileData = myFile.getFileData();
System.out.println("Type du fichier: " + contentType);
System.out.println("Nom du Fichier: " + fileName);
System.out.println("Taille du fichier: " + fileSize);
return (mapping.findForward("succes"));
}
public ActionForward miseajour(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException
{
System.out.println("Appel de la methode miseajour()");
return (mapping.findForward("succes"));
}
} |
Merci encore pour votre aide car là ... je n'ai vraiment plus d'idées ...