Bonjour,

Je ne comprends pourquoi j'ai cette erreur alors que j'ai suivi un tutoriel. voici l'erreur que j'ai :

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
 
type Rapport d'exception
 
message
 
description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
 
exception
 
javax.servlet.ServletException: javax.servlet.ServletException: Request[/operations] does not contain handler parameter named 'operation'.  This may be caused by whitespace in the label text.
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 
cause mère
 
javax.servlet.ServletException: Request[/operations] does not contain handler parameter named 'operation'.  This may be caused by whitespace in the label text.
	org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:197)
	org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:245)
	org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.10.

mon fichier de struts :

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
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
 
<struts-config>
		<form-beans>
			<form-bean name="operationsForm"
				type="org.apache.struts.action.DynaActionForm">
				<form-property name="operation" type="java.lang.String"/>
				<form-property name="reference" type="java.lang.String"/>
			</form-bean>
		</form-beans>
 
		<global-exceptions>
 
 
 
		</global-exceptions>
 
		<action-mappings>
			<action path="/operations" type="OperationsAction"
			name="operationsForm" scope="request" validate="true" parameter="operation">
			<forward name="succes" path="/operations.jsp"/>
			</action>
 
 
 
 
		</action-mappings>
	<message-resources parameter="messages"></message-resources>
</struts-config>
web.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
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
<?xml version="1.0" encoding="ISO-8859-1"?>
 
  <!DOCTYPE web-app PUBLIC
	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
	"http://java.sun.com/dtd/web-app_2_3.dtd">
 
<web-app>
  <display-name>StrutsPhoneBook</display-name>
 
  <!-- Standard Action Servlet Configuration -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>
 
 
  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
 
 <taglib>
 	<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
 	<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
 </taglib>
 <taglib>
 	<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
 	<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
 </taglib>
 <taglib>
 	<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
 	<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
 </taglib>
 <taglib>
 	<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
 	<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
 </taglib>
</web-app>
mon form

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
import org.apache.struts.action.ActionForm;
 
 
public class OperationsForm extends ActionForm{
	/**
         * 
         */
	private static final long serialVersionUID = 1L;
	private String reference;
	private String operation;
	/**
         * @return the operation
         */
	public String getOperation() {
		return operation;
	}
	/**
         * @param operation the operation to set
         */
	public void setOperation(String operation) {
		this.operation = operation;
	}
	/**
         * @return the reference
         */
	public String getReference() {
		return reference;
	}
	/**
         * @param reference the reference to set
         */
	public void setReference(String reference) {
		this.reference = reference;
	}
}
mon action :

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
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
 
public class OperationsAction extends  DispatchAction{
 
	public ActionForward ajouter(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
	{
		System.out.println("Appel de la methode ajouter()");
		return (mapping.findForward("succes"));
	}
 
	public ActionForward modifier(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
	{
		System.out.println("Appel de la methode modifier()");
		return (mapping.findForward("succes"));
	}
 
	public ActionForward supprimer(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 
	{
		System.out.println("Appel de la methode supprimer()");
		return (mapping.findForward("succes"));
	}
}
mon index :

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
<%@ taglib uri="WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<SCRIPT language="javascript" type="text/javascript">
function setOperation(valeur){
document.forms[0].operation.value=valeur;
}
</SCRIPT>
</head>
<body>
<html:form action="operations.do" focusIndex="reference">
<html:hidden property="operation" value="aucune"/>
<bean:message key="form.reference"/><html:text property="reference"/><br/>
<html:submit onclick="setOperation('ajouter')">Ajouter</html:submit><br/>
<html:submit onclick="setOperation('modifier')">Modifier</html:submit><br/>
<html:submit onclick="setOperation('supprimer')">supprimer</html:submit><br/>
</html:form>
</body>
</html>
Merci de m'aider,
fk04