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 :

Gérer une action selon une liste déroulante


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut Gérer une action selon une liste déroulante
    Bonjour à tous.

    Je développe sous myeclipse et strut (+hibernate) une application de reporting et je suis bloqué dans une page ou je demande à l'utilisteur de chosir à travers une liste déroulante l'année à fin que j'affiche un tableau de reporting correspondant à cette année.C'est à dire j'ai une page ChoixAnnee.jsp qui contient une liste déroulante (2007-2008-2009 ....) et lors du choix je veut faire deux trucs essentiels :

    Premièrement aller vers la page Affichertab.jsp quand l'utilisateur choisit n'importe quelles années car il s'agit de la meme structure de tableuax (des tableaux ou se trouve les valeurs du budget pour chacuns des 12 mois) c'est uniqument les valeurs des cellules qui varient selon l'année.

    Deuxièment et c'est là ou j'ai eu un plus de diffculter c'est lors de l'action j'aimerais recupérer la velur chosit dans la liste déroulante et la passer comme parmétre dans Affichertab.jsp pour avoir les bonnes valeurs du budget qui dependent de l'année (variable à recupérer).

    Ceci dit je rencontre des difficultés en ce qui conserne comment récuperer la velur de l'année lors de la gestion de l'action c'est à dire dans le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    et l'utiliser dans la page de redirection Affichertab.jsp définit à travers le struts-config.xml .

    Toutes vos réponses me seront d'une très grande aide.

  2. #2
    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
    Pour récupérer la valeur de l'année sélectionnée, c'est simple.

    Si par exemple, tu as codé ceci dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="anneeSelected">
    ...
    </html:select>
    dans l'Action exécutée au submit du formulaire, tu récupéreras l'année sélectée via le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TonActionForm tonActionForm = (TonActionForm) form ;
    String anneeSelected=tonActionForm.getAnneeSelected() ;

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Merci pour votre réponse c_nvy ,cependant j'ai deux petites questions

    1) Supposon que je veut récuperer juste la valeur de l'année et rester toujours dans la meme page car pour se rediriger vers la page AffichetTab.jsp je vait cliquer simplement sur un autre lien mais biensur en prenant en compte la velur récuperer à partir de la liste déroulante .

    2) C'est vue que l'année est un entier et qu'à partir de la liste déroulante je récupére un String une simple conversion de String vers Integer fera l'affaire ?

  4. #4
    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
    Tu parles de cliquer sur un lien. Mais qu'appelles-tu dans ce lien ? une Action ou une jsp ?
    Si c'est une Action, pour être redirigé sur la même page, il suffit de définir un forward vers cette même page dans le mapping de cette Action.

    Peux-tu montrer le bout de code de la jsp correspondante ?

    Si les valeurs affichées dans ta liste déroulante sont de type Integer, tu peux très bien récupérer la valeur sélectionnée directement comme un Integer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TonActionForm tonActionForm = (TonActionForm) form ;
    Integer anneeSelected=tonActionForm.getAnneeSelected() ;

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Tu parles de cliquer sur un lien. Mais qu'appelles-tu dans ce lien ? une Action ou une jsp ?


    Non c une simple Jsp avec un lien(A HREF).

  6. #6
    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 c_nvy Voir le message
    Peux-tu montrer le bout de code de la jsp correspondante ?

  7. #7
    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
    En fait, je viens de réagir que si tu cliques sur un lien, que tu fasses appel à une jsp ou à une Action, tu ne soumettras pas le formulaire.
    Tu ne pourras donc pas récupérer la valeur sélectée via le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TonActionForm tonActionForm = (TonActionForm) form ;
    Integer anneeSelected=tonActionForm.getAnneeSelected() ;

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    En fait, je viens de réagir que si tu cliques sur un lien, que tu fasses appel à une jsp ou à une Action, tu ne soumettras pas le formulaire.
    Tu ne pourras donc pas récupérer la valeur sélectée via le code suivant

    suis-je obliger de passer par une action avec un forword car j'amerais bien un simple a Href car en faite j'ai plusieur liens qui méne a plusieurs pages .

  9. #9
    Membre chevronné
    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 082
    Points : 1 943
    Points
    1 943
    Par défaut
    Citation Envoyé par Viscapon Voir le message
    Merci pour votre réponse c_nvy ,cependant j'ai deux petites questions

    1) Supposon que je veut récuperer juste la valeur de l'année et rester toujours dans la meme page car pour se rediriger vers la page AffichetTab.jsp je vait cliquer simplement sur un autre lien mais biensur en prenant en compte la velur récuperer à partir de la liste déroulante .

    2) C'est vue que l'année est un entier et qu'à partir de la liste déroulante je récupére un String une simple conversion de String vers Integer fera l'affaire ?
    Bonjour Viscapon,

    Je ne suis pas sur d'avoir très bien compris. Sur ta page ChoixAnnee.jsp, tu as une liste déroulante avec tes années. Sur cette page, tu as un lien hypertexte href.
    Lorsque tu cliques sur ce lien, tu aimerais sur la page avec un tableau de reporting tout en conservant la liste déroulante mais présélectionnée sur l'année que tu as choisis.

    Est ce bien cela ?

    SI c'est le cas, comme le dit c_nvy, il n'est pas utile de recreer une page jsp AffichetTab.jsp.
    Voici comment je verrais le déroulement :
    - Tu arrive pour la première fois sur ChoixAnnee.jsp qui t'affiche une liste avec les année.
    - Tu cliques sur ton lien href
    - Ton action récupère l'année de ton combobox, puis récupère les données.
    - Tu envoies tes données à ta JSP ChoixAnnee.jsp : l'année pour préséléctionner ta liste sur la bonne année + les données pour ton tableau

    A prendre avec des pincettes. Je suis débutant.

    Viscapon, je ne sais pas si tu es étranger. Si c'est le cas, bravo ce n'est pas évident de s'exprimer dans une langue étrangère. Si par contre, tu es français, fais très attention à ton orthographe. Il y a même quelques passages difficile à comprendre ou la relecture est nécessaire pour la compréhension.

  10. #10
    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 Viscapon Voir le message
    suis-je obliger de passer par une action avec un forword car j'amerais bien un simple a Href car en faite j'ai plusieur liens qui méne a plusieurs pages .
    Ton problème n'est pas vraiment d'appeler une Action ou une jsp mais plutôt de provoquer la soumission du formulaire pour pouvoir récupérer la valeur sélectionnée car, comme je te l'ai dit, un clic sur un lien ne soumet pas le formulaire.

    Il faudrait donc provoquer la soumission du formulaire lors de la sélection dans la liste déroulante via l'attribut onchange du tag html:select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="document.nomDuFormBean.submit();"
    Mais si tu soumets le formulaire de cette façon, il faut savoir que cela exécutera l'Action dont tu as spécifié le path dans le tag html:form.

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Merci c_nvy et weed pour vos précisions qui m'ont aider à voire plus clair dans mon problème ,et de ce fait j'ai penser à une autre alternative qui serait peut etre plus maniable ,donc j'ai penser à retirer la liste déroulante des années de la page Choixannées et se contenter des liens qui ménent aux differentes pages qui contiennent les tableaux de repoting et c'est dans ces pages AfficherTab.jsp ou je vait récuperer ma variable années(En introduisant la liste déroulante dans AfficherTab.jsp)ça ferais une sorte de tableaux dynamiques,dont les valeurs changerons selon la valeur des l'années choisient dans la liste déroulante.

    En effet dans ma page AfficherTab.jsp je vais générer une action lors de la selection d'un item de la liste puis le passer en pramètre dans la meme page (AfficherTab.jsp) comme ça je récupére mon année.

    Mais avant d'arriver à ceci ,en implémentant cette solution hier j'ai eu un petit souci c'est que je me retrouve avec une liste d'années vide voici une partie de ma page AfficherTab.jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     <div align="center">
            	<html:form action="/bdgFinance">
    			annee : <html:select property="annee" >
    			<html:option property="annee">2007</html:option>
                <html:option property="annee">2008</html:option>
                <html:option property="annee">2009</html:option>
                <html:option property="annee">2010</html:option>
              </html:select>
    			<br/>
    			<html:submit/><html:cancel/>
    		</html:form>

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Je viens de trouver la solution à ce probleme en fait il me manquer le tag value dans la balise option .Maintenant je vait voir si ma variable année sera belle et bien récupérer.

    weed :

    En fait je suis étranger comme t'a pu le constater et j'ai une mauvaise habitude c'est que je commet baucoup de fautes d'inatention dans mon orthographe et j'esseye de remédier à ce problème en éditant en permanance mes poste après relecture pour corriger mes fautes .

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Ok c bon les amis je viens de résoudre le problème. Merci infiniment pour votre aide .

  14. #14
    Membre chevronné
    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 082
    Points : 1 943
    Points
    1 943
    Par défaut
    oki super.


    Très bien alors si tu es étranger. Je pense que je fais beaucoup plus de faute que toi lorsque je rédige en anglais. Le seul conseil que je te donnerai serait de faire des phrases plus courte. La lecture est souvent plus facile, plus digeste. A chaque point, on reprends son souffle. Avec des phrases à rallonges comme tu fais, on ne sait pas à quel moment il faut reprendre le souffle. Enfin bon ce n'est qu'un conseil que j'essaie d'appliquer en anglais.

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 06/10/2023, 16h10
  2. Réponses: 2
    Dernier message: 05/04/2009, 17h51
  3. Réponses: 12
    Dernier message: 12/09/2007, 16h28
  4. Appeler une action dans une action
    Par japz dans le forum Struts 1
    Réponses: 2
    Dernier message: 25/01/2007, 08h48
  5. [Struts] Appel d'une action dans une action
    Par cosmos38240 dans le forum Struts 1
    Réponses: 2
    Dernier message: 16/02/2006, 15h52

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