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

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Points : 96
    Points
    96
    Par défaut Probleme avec DispatchAction
    Bonjour,

    Je suis débutant en struts et me voici confronté à mon premier problème !

    A partir d'un formulaire je souhaite appeler 2 actions différentes d'une même classe.
    Pour mon test, dans ma jsp, j'ai un seul boutton submit qui appel ma première méthode. Quand je test, cela fonctionne correctement. Voici la ligne pour les valeurs tests:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:submit onclick="setHidden(processreponse);" >Rep</html:submit>
    Quand je change juste le nom de la métode à appeler, impossible d'atteindre ma jsp formulaire, une erreur ce produit
    Voici la ligne pour les valeurs tests:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:submit onclick="setHidden('processother');" >Rep</html:submit>
    Voici l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    type Rapport d'état
     
    message /test2-strutsperson2-1.0.0-SNAPSHOT/formulaire.do
     
    description La ressource demandée (/test2-strutsperson2-1.0.0-SNAPSHOT/formulaire.do) n'est pas disponible.
    Mon strutc config:
    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
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    <struts-config>
    	<form-beans>
    		<form-bean name="frmPersonne" type="be.FormulaireBean" />
    	</form-beans>
     
    	<action-mappings>
     
    		<action parameter="/WEB-INF/vues/reponse.personne.jsp"
    			path="/reponse" type="org.apache.struts.actions.ForwardAction" />
     
    		<action parameter="/WEB-INF/vues/formulaire.personne.jsp"
    			path="/formulaire" type="org.apache.struts.actions.ForwardAction" />
     
    		<action parameter="/WEB-INF/vues/other.jsp" path="/other"
    			type="org.apache.struts.actions.ForwardAction" />
     
    		<action parameter="/WEB-INF/vues/erreurs.personne.jsp"
    			path="/erreurs" type="org.apache.struts.actions.ForwardAction" />
     
    		<action path="/main" name="frmPersonne" scope="request"
    			validate="true" parameter="hidden" type="be.FormulaireAction">
     
    			<forward name="reponse" path="/reponse.do" />
    			<forward name="other" path="/other.do" />
    		</action>
    	</action-mappings>
     
    	<message-resources parameter="personnesresources" />
    </struts-config>
    Ma jsp qui fonctionne une fois sur deux:
    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
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <html>
    <meta http-equiv="pragma" content="no-cache">
    <head>
    <title>Personne - formulaire</title>
    <script language="javascript">
    function effacer(){
    with(document.frmPersonne){
    nom.value="";
    age.value="";
    }
    }
       function setHidden(value){document.formulaire.hidden.value=value;
       document.formulaire.submit();
       }
    </script>
    </head>
    <body>
    <center>
    <h2>Personne - formulaire</h2>
    <hr>
    <html:form action="/main">
    <html:hidden property="hidden" value="processother"/>
    	<table>
    		<tr>
    			<td>Nom</td>
    			<td><html:text property="nom" size="20" /></td>
    		</tr>
    		<tr>
    			<td>Age</td>
    			<td><html:text property="age" size="3" /></td>
    		</tr>
    		<tr>
    	</table>
    	<table>
    		<tr>
    			<td><html:submit onclick="setHidden('processother');" >Rep</html:submit> (La ligne de code qui fonctione quand elle le souhaite)</td>
    			<td><html:reset value="Rétablir" /></td>
    			<td><html:button property="btnEffacer" value="Effacer"
    				onclick="effacer()" /></td>
    		</tr>
    	</table>
    	
    
    </html:form></center>
    </body>
    </html>
    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
    29
    30
    31
    32
    33
    34
    35
    36
     
    package be;
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    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 FormulaireAction extends DispatchAction {
     
    	 public ActionForward processreponse(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    	        // on a un formulaire valide, sinon on ne serait pas arrivé là
    	        FormulaireBean formulaire = (FormulaireBean) form;
    	        request.setAttribute("nom", formulaire.getNom());
    	        request.setAttribute("age", formulaire.getAge());
     
    	        return mapping.findForward("reponse");
    	    }
        public ActionForward processother(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
            // on a un formulaire valide, sinon on ne serait pas arrivé là
            FormulaireBean formulaire = (FormulaireBean) form;
            request.setAttribute("nom", formulaire.getNom());
            request.setAttribute("age", formulaire.getAge());
     
     
            return mapping.findForward("other");
        }
     
    }
    Je ne met pas mon bean car avec un forward normal il fonctionne parfaitement.

    Savez vous ou est mon erreur ? Pourquoi le dispatchAction ne fontionne pas dans les 2 cas ?

    Merci pour votre aide !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    type Rapport d'état
     
    message /test2-strutsperson2-1.0.0-SNAPSHOT/formulaire.do
     
    description La ressource demandée (/test2-strutsperson2-1.0.0-SNAPSHOT/formulaire.do) n'est pas disponible.

    Pour t'aider, il faudrait qu'on aie le détail de l'erreur (disponible dans les logs de ton serveur, vraissemblablement).

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    a la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function setHidden(value){
       document.formulaire.hidden.value=value;
       document.formulaire.submit();
    }
    écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function setHidden(value){
       document.getElementById('hidden').value=value;
       document.forms[0].submit();
    }

  4. #4
    Membre averti Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    A la place de ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:submit onclick="setHidden(processreponse);" >Rep</html:submit>
    plutot ca non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:submit onclick="setHidden('processreponse');" >Rep</html:submit>
    De plus ton form il ne s'appelarait pas plutot frmPersonne
    Enfin tes dispatchs ne seraient pas plutot 'reponse' et 'other' que 'processreponse' et 'processother'

    ??

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 tomy29 dans le forum Struts 1
    Réponses: 20
    Dernier message: 06/11/2008, 16h09
  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