IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Request[/operations] does not contain handler parameter named 'operation'.


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 241
    Points : 89
    Points
    89
    Par défaut Request[/operations] does not contain handler parameter named 'operation'.
    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

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Salut
    je suis pas sûr mais est ce que cette syntaxe est correcte ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:form action="operations.do" focusIndex="reference">
    au lieu de ça essaye plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <html:hidden property="operation" value="aucune"/>
    <html:form action="/operations.do?operation=operation" focusIndex="reference">
    Sinon , une autre solution sûre :
    mets chaque submit dans une form à part :
    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
     
    <body>
     
    <bean:message key="form.reference"/><html:text property="reference"/><br/>
     
    <html:form action="/operations.do?operation=ajouter" focusIndex="reference">
    <html:submit>Ajouter</html:submit><br/>
    </html:form>
     
    <html:form action="/operations.do?operation=modifier" focusIndex="reference">
    <html:submit>Modifier</html:submit><br/>
    </html:form>
     
    <html:form action="/operations.do?operation=supprimer" focusIndex="reference">
    <html:submit>Supprimer</html:submit><br/>
    </html:form>
     
    </body>
    Bonne chance

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par luna007 Voir le message
    Sinon , une autre solution sûre :
    mets chaque submit dans une form à part :
    A ben non, surtout pas...

    C'est curieux effectivement, en théorie, ça devrait fonctionner...
    Essaye juste de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:hidden property="operation" value="aucune"/>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="operation"/>
    Sinon, regarde le code de la page générée (pas un autre champ operation par hasard ?) et post le...

    Autre chose, pourquoi DynaActionForm ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <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>
    et pas simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form-bean name="operationsForm" type="lePackage.OperationsForm"/>
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous,
    Voila je suis dans le même cas.
    quelle est la solution a ce problème ?

    merci d'avance.

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ce message d'erreur signifie que tu n'as pas affecté de valeur au paramètre de la DispatchAction.

    As-tu ce message d'erreur au premier affichage de la page ou au submit du formulaire ?
    Modératrice Java - Struts, Servlets/JSP, ...

  6. #6
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Points : 57
    Points
    57
    Par défaut
    Bonsoir,

    Citation Envoyé par c_nvy Voir le message
    Ce message d'erreur signifie que tu n'as pas affecté de valeur au paramètre de la DispatchAction.

    As-tu ce message d'erreur au premier affichage de la page ou au submit du formulaire ?
    J'ai le même problème. Mais dans mon cas, c'est au premier affichage de la page. Quelle est la solution ?

  7. #7
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Points : 57
    Points
    57
    Par défaut
    J'ai pu trouvé la solution a mon problème ici au cas où ça intéresserait quelqu'un.

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par hisoft Voir le message
    J'ai le même problème. Mais dans mon cas, c'est au premier affichage de la page. Quelle est la solution ?
    Il faut simplement penser à passer le paramètre operation lors du premier appel de la page.
    Modératrice Java - Struts, Servlets/JSP, ...

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/03/2011, 14h12
  2. Réponses: 0
    Dernier message: 05/08/2008, 19h22
  3. Réponses: 2
    Dernier message: 28/03/2007, 22h25
  4. Réponses: 13
    Dernier message: 31/05/2006, 14h31
  5. "function does not take 0 parameters"
    Par beb30 dans le forum C
    Réponses: 4
    Dernier message: 31/03/2006, 20h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo