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 :

Action et paramètre


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut Action et paramètre
    Bonjour,

    J'ai une jsp qui affiche une liste de spectacle. Lorsque je choisis un spectacle j'envoie une action avec comme paramètre l'identifiant de mon spectacle. Dans mon action je renvoie le détail du spectacle sélectionné. Ca marche.

    Je modifie un élément de détail du spectacle puis je renvoie à mon objet action ce qu'il doit faire pour mettre à jour ma modif . Ca marche.

    Mais Ensuite j'envoie dans l'objet action "return mapping.findForward("succes");" Mais la jsp qui m'est renvoyé est celle qui affiche la liste des spectacles entiers et non pas filtré avec le spectacle que je viens de sélectionné.

    Question : Ou je dois indiquer et comment pour dire que je veux retourner à ma jsp mais avec les paramètres que je lui ai passée. Et donc dans ce cas avec le spectacle que j'avais mis à jour.

    Merci pour votre aide

  2. #2
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    peux tu nous montrer ton struts-config et ton action stp?

  3. #3
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    A la fin de ton action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("nom du parametre", valeur du parametre);
    Et tu fais pointer ton forward vers ton action qui affiche les spectacle désirés. Vu qu'ils sont passé en paramètres, ton action les récupère et les envoie a la bonne jsp.

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    Jolokossovar ça n'a pas fonctionné.
    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
    Struts-config :
    <struts-config>
    
        <!-- Sources de données -->
        <data-sources>
        </data-sources>
    
        <!-- Beans de formulaire -->
        <form-beans>
            <form-bean name="dashBoardTimeKeeperForm"  type="com.ed.timekeeper.client.action.attraction.AttractionForm" />
        </form-beans>
    
        <!-- Exceptions globales -->
        <global-exceptions>
        </global-exceptions>
    
        <!-- Références aval globales -->
        <global-forwards>
        </global-forwards>
    
        <!-- Mappages d'action -->
        <!--forward name="succes" path="/jsp/timekeeper/dashboard/attractionDashBoard.jsp"/-->
        <action-mappings>
        
            <action   name="dashBoardTimeKeeperForm" path="/validerAttraction"  type="com.ed.timekeeper.client.action.attraction.FormAttractionValiderAction" scope="session" validate="false"  >
                <forward name="succes" redirect="true" path="/formTabsDashboard.do"/>            
                <forward name="error" path="/formTimeKeeperHome.do"/>            
            </action>
            
        <action   name="dashBoardTimeKeeperForm" path="/formTabsDashboard" type="com.ed.timekeeper.client.action.attraction.FormAttractionAction"  scope="session" validate="false" >
                <forward name="succes" redirect="true" path="testTabsDashboardTile"/>       
                <forward name="error" path="attractionDashboardTile"/>                       
            </action>        
            
        </action-mappings>
    
    </struts-config>
    A la fin de la méthode execute de mon action "FormAttractionValiderAction" je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    request.setAttribute("action", "spectacleChange");
    request.setAttribute("newSpectacleSelected",  nomDuSpectacle);        
    return mapping.findForward("succes");
    Merci pour votre aide

  5. #5
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Dans ton action formTabsDashboard tu recuperes bien tes deux paramètre via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    param1 = (TypeDuParam)request.getParameter(nomDuParam);
    essaie d'enlever les redirection=true (a quoi servent ils ?)

  6. #6
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    Jolokossovar , j'ai enlever les redirection. A la fin de ma méthode execute lorsque je fais request.setAttribute... ceci n'a aucune influence sur le forward. Le forward s'execute après la mise à jour et c'est l'action formTabsDashboard qui se déclenche MAIS les paramètres (que j'essaie de changer dans request.setAttribute) possède les valeurs de l'action "validerAttraction".

    PS : Et à l'affichage de la jsp j'ai l'url suivante , http://localhost:9081/TimeKeeper/val...&newHour=16:55
    hors je devrais avoir l'url http://localhost:9081/TimeKeeper/for...elected=554207 qui est celle pour visualiser le détail d'un spectacle alors que l'autre c'est l'url de la mise à jour.

  7. #7
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Je voudrais bien t'aider mais je ne comprends pas trop ce que tu fais. stp, peux tu nous faire parvenir l'ensemble des actions, forms, jsp... ?

    PS : Attention à la mise en forme stp : le bouton # dans l'éditeur te permet de faire des zones de code
    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
    <struts-config>
    <!-- Sources de données -->
    <data-sources>
    </data-sources>
     
    <!-- Beans de formulaire -->
    <form-beans>
    <form-bean name="dashBoardTimeKeeperForm" type="com.ed.timekeeper.client.action.attraction.AttractionForm" />
    </form-beans>
     
    <!-- Exceptions globales -->
    <global-exceptions>
    </global-exceptions>
     
    <!-- Références aval globales -->
    <global-forwards>
    </global-forwards>
     
    <!-- Mappages d action -->
    <!--forward name="succes" path="/jsp/timekeeper/dashboard/attractionDashBoard.jsp"/-->
    <action-mappings>
     
    <action name="dashBoardTimeKeeperForm" path="/validerAttraction" type="com.ed.timekeeper.client.action.attraction.FormAttractionValiderAction" scope="session" validate="false" >
    <forward name="succes" redirect="true" path="/formTabsDashboard.do"/> 
    <forward name="error" path="/formTimeKeeperHome.do"/> 
    </action>
     
    <action name="dashBoardTimeKeeperForm" path="/formTabsDashboard" type="com.ed.timekeeper.client.action.attraction.FormAttractionAction" scope="session" validate="false" >
    <forward name="succes" redirect="true" path="testTabsDashboardTile"/> 
    <forward name="error" path="attractionDashboardTile"/> 
    </action> 
     
    </action-mappings>
     
    </struts-config>

  8. #8
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Bon, on va reprendre ceci depuis le début car ce n'est pas très clair ...

    Le principe est le suivant :
    Tu sélectionnes avec une action les spectacle que tu veux voir, tu les ajoute a ta requête via le request.setAttribute. Tu rentres donc une liste de spectacle dans la request et tu fais ton mapping.findForward("succes");

    Le forward doit t'amener directement sur un jsp ou tu fais un <c:forEach (en jstl) pour afficher les éléments de ta liste.

    Dans ton struts config essauie de ^passer en scope="request" ala place de session.

  9. #9
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Citation Envoyé par bags1509 Voir le message
    l'action formTabsDashboard
    ta nommenclature est perturbante. Appeller une action form...

  10. #10
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    Bon je vais essayer d'être plus clair.

    1) J'ai une action sans paramètres(formTabsDashboard.do) qui affiche une jsp (liste des spectacles) .
    2) Je choisis un spectacle . Dans cette jsp (par javascript) j'envoie la même action avec le paramètre du spectacle sélectionné.
    3) La jsp m'affiche bien le détail du spectacle. Je modifie le spectacle sélectionné. J'envoie depuis la même jsp (par javascript) une nouvelle action (validerAttraction.do) avec comme paramètre le spectacle et la valeur de ce que j'ai modifié.
    4) Au retour de cette mise à jour je voudrais que ma jsp s'affiche avec le spectacle sélectionné (comme en 2). Hors la jsp s'affiche mais sans les paramètres et donc se retrouve à l'affichage comme cité dans mon paragraphe 1. Le paramètre du spectacle sélectionné n'est pas pris en compte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	<action-mappings>
    	<action   name="dashBoardTimeKeeperForm" path="/validerAttraction"  type="com.ed.timekeeper.client.action.attraction.FormAttractionValiderAction" scope="session" validate="false"  >
    		<forward name="succes" path="/formTabsDashboard.do"/>					<forward name="error" path="/formTimeKeeperHome.do"/>			
            </action>
     
    		<action   name="dashBoardTimeKeeperForm" path="/formTabsDashboard" type="com.ed.timekeeper.client.action.attraction.FormAttractionAction"  scope="session" validate="false" >
    			<forward name="succes"  path="testTabsDashboardTile"/>       
    			<forward name="error" path="attractionDashboardTile"/>       				
            </action>        
     
    	</action-mappings>

  11. #11
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    En résumé,

    Comment fait on quand on déclenche une redirection vers une autre action dans le struts config pour qu' il puisse prendre en compte des paramètres lorsque l'url va afficher ma jsp. Dans mon cas le forward name="succes" de FormAttractionValiderAction .

    Merci

  12. #12
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Ta facon de fonctionner n'est pas très catholique...

    Pour ce que tu souhaites faire, tu utilises 2 actions, une affiche la liste des spectacle une autre affichera ton spectacle. Dans ta JSP liste, tu affiches des spectacles. En cliquant sur un lien ou bouton, tu appelles l'affichage d'un spetacle.

    PS : si tu veux de l'aide, communiques tes JSP, actions, forms et struts-config... Cela facilite la tache de ceux qui peuveut t'aider.

  13. #13
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    Merci mais je ne pourrai pas envoyer tout les documents. De plus je dois mal m'expliquer car ce que je fais ne correspond pas à ce que tu en as compris. Il est clair que si j'ai une liste et que je veux accéder à un détail j'utilise une autre action. Dans mon cas la liste en question est un combo et à chaque fois que je choisis un élément du combo je raffraichis une liste de détail (situé en dessous du combo) correspondant à cet élément. Et donc je peux modifier un élément de détail en envoyant une autre action. C'est au retour de cette action de modif que je voudrais revenir sur la même jsp avec surtout le dernier élément du combo que j'avais sélectionné et son détail.

    Merci quand même et bonne journée.

  14. #14
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Utilise DispatchAction cela te permet de definir differentes methodes... regardes ici

  15. #15
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    J'ai résolu mon problème . Dans le fichier struts-config après succes de la mise à jour je renvoie une action dans le forward avec un paramètre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parallel.For et Action à plusieurs paramètres ?
    Par codnob dans le forum C++/CLI
    Réponses: 0
    Dernier message: 11/01/2012, 16h54
  2. [1.x] recupérer dans l' action un paramètre de l' url
    Par mantex dans le forum Symfony
    Réponses: 12
    Dernier message: 25/11/2010, 18h39
  3. Action et paramêtres en POST
    Par BakaOnigiri dans le forum JSF
    Réponses: 1
    Dernier message: 17/10/2008, 10h11
  4. Réponses: 2
    Dernier message: 17/01/2007, 11h20
  5. Passer des paramètres à l'URL de retour d'une action
    Par et.rond.et.rond dans le forum JSF
    Réponses: 2
    Dernier message: 03/08/2006, 23h03

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