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 :

Probleme avec DispatchAction


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut Probleme avec DispatchAction
    Bonjour
    j'essaie d'utiliser le dispatchAction,
    J'obtiens cette erreur quand je clique sur un des deux boutons de mon formulaire :
    java.lang.NoSuchMethodException: Action[/manageSymptome] does not contain specified method (check logs)
    Où est mon erreur?
    j'ai fait comme suit(j'ai suivi la FAQ) :
    JSP :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <SCRIPT LANGUAGE="JavaScript">
        function setHidden(value){document.formulaire.hidden.value=value;}
    </SCRIPT>
     
    <html:form action="/manageSymptome">
       <html:hidden property="hidden" value="default"/>
       <html:submit value="Supprimer" style="float:right;" onclick="setHidden('delete');"></html:submit>
       <html:submit value="Maladies" style="float:right;" onclick="setHidden('showMaladies');"></html:submit>
    </html:form>


    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
    public class ManageSymptome extends DispatchAction {
    	public ActionForward del(ActionMapping mapping, ActionForm form, 
    			HttpServletRequest request, HttpServletResponse response) 
    			throws IOException, ServletException {
     
    	return mapping.findForward("success");
    	}
    	public ActionForward showMaladies(ActionMapping mapping, ActionForm form, 
    			HttpServletRequest request, HttpServletResponse response) 
    			throws IOException, ServletException {				
    	return mapping.findForward("success");	
    	}	
    }
    et mon struts-config.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <action
                path="/manageSymptome"
                type="action.ManageSymptome"
                name="goToConsultation"
                scope="session"
                parameter="hidden">
                <forward name="success" path="/private/consultation.jsp" redirect="true"/>
    </action>

    Merci.

  2. #2
    Expert confirmé

    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
    Par défaut
    Pour le bouton Supprimer, tu passes le paramètre delete. Or, la méthode s'appelle del dans la DispatchAction. Il faut que les deux soient identiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:submit value="Supprimer" style="float:right;" onclick="setHidden('del');"></html:submit>
    Sinon, remplace formulaire par le nom du form-bean dans la fonction Javascript setHidden :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SCRIPT LANGUAGE="JavaScript">
        function setHidden(value){document.goToConsultation.hidden.value=value;}
    </SCRIPT>

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    Après modification , le même problème persiste.

  4. #4
    Expert confirmé

    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
    Par défaut
    Essaie de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <html:hidden property="hidden" value="default"/>
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <html:hidden property="hidden" value="showMaladies"/>

  5. #5
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 226
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 226
    Par défaut
    je dis ca, je dis rien mais c_navy, ca ne serait pas mieux de modifier l'action du formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SCRIPT LANGUAGE="JavaScript">
        function setHidden(value){document.formulaire[0].action='/manageSymptome?hidden='+value;}
    </SCRIPT>
    Je ne savais pas que l'on pouvait passer par un champ pour le dispatchAction.
    Je pensais que c'etait toujours dans le parametre

    mais si l'astuce en passant par un champs est correct, je viens de penser que c'est peut etre du à la méthode d'envoi. Il faut peut etre préciser que l'on envoie en GET, car par défaut c'est POST, en essayant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="/manageSymptome" method="GET">

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    Cette dernière solution ne fonctionne pas, toujours le même message d'erreur.
    Pour la solution proposé par c_nvy, maintenant quel que soit le bouton sur lequel je clique, je suis redirigé vers l'action showMaladies. Donc c'est le passage de paramètre qui ne se fait pas je pense.

    Au pire je passe par un LookupDispatchAction, ça, ça marche bien pour l'instant. : )

Discussions similaires

  1. Probleme avec le DispatchAction
    Par Viscapon dans le forum Struts 1
    Réponses: 31
    Dernier message: 14/12/2008, 18h25
  2. Probleme avec DispatchAction
    Par L Ankou dans le forum Struts 1
    Réponses: 3
    Dernier message: 11/02/2008, 09h56
  3. probleme avec DispatchAction
    Par ayoub2010 dans le forum Struts 1
    Réponses: 9
    Dernier message: 05/05/2007, 12h16
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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