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":

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 : 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
 
  <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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
button.validation=Verification
button.maj=MAJ
et mes méthodes associés sont:

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
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 ...