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 :

DispatchAction et init de combo-box


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut DispatchAction et init de combo-box
    Bonjour à tous,

    J'ai fait une recherche sur le forum, et je n'ai pas trouvé de réponse à ma question, malgré plusieurs sujets concernant le DispatchAction. Plutot que de continuer un autre sujet, j'ai préféré ouvrir une nouvelle discussion.

    Alors voici mon problème.

    J'ai une page .jsp dans laquelle se trouve un formulaire contenant une combo box et un bouton rechercher. Selon la valeur affichée dans la combo-box, le résultat difére bien entendu.

    Jusque là, aucun soucis. Pour ce qui est de l'affichage de mon résultat, il se fait sur la .jsp de départ, ce qui permet de modifier la valeur dans la combo-box et de relancer une recherche rapidement.

    Après quelques rapides recherches, j'ai vu qu'il fallait utiliser le dispatchAction et une méthode Load dans cette classe pour initialiser la combo-box.

    Et c'est là que se pose mon problème en fait :

    lorsque c'est une autre méthode qui est appellée (donc à la place du load), les combo-box vont ils se retrouver vide, ou bien gardent ils la liste chargées lors du load en mémoire ?

    En clair, dois je faire un appel à la méthode Load dans les méthodes exécutes de mon dispatchAction ?

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Si j'ai bien compris ta question tout repond si ton form est en request ou en session.
    Si c'est en request il perdra les valeurs.
    Si il est en session il gardera les valeurs (idem pour application)

  3. #3
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    je passe mon form en request car aucune infos ne nécessite vraiment une présence dans la session de l'utilisateur.

    Docn si je suis bien ce que tu me dis, vu que c'est en request, le combo-box sera ré-initialisé à chaque action et chaque chargement de ma page .jsp.

    à partir de là, quelle est la meilleure solution ?

    soit je mets le chargement des combo-box en session. Ce ne sont que de simples listes donc à priori ça ne devrait pas bouffer trop d'espaces.

    soit dans mes autres méthodes de l'action je fait un appel à la méthode load pour tout recharger.

    soit vous voyez une autre solution que je n'ai pas vue

  4. #4
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Tout dépend si les valeurs de tes combo peuvent changer entre chaque appel ou non.

    1) -> Si vraiment ces valeurs sont fixes, le mieu est de laisser le form en request.
    Mais de mettre tes valeurs de combo dans un attribut session (voir application), et ainsi ta jsp prendra les valeurs de tes combo dans l'attribut de session et donc besoin de ne charger tes combo qu'une seule fois (genre si tu as un formulaire avec une combo Mr / Mme / Mlle vaut mieux que les valeurs soit en application avec une servlet qui les charge au demarrage du serveur)

    2) -> Si tes valeurs peuvent changer laisse ton form en request et charge tes combo tout le temps.

    3) -> Dans ton cas mettre ton form en session serait juste plus te simplifier la vie du 1)

  5. #5
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    désolé, j'ai oublié de préciser que le combo-box se chargeait avec des données venant d'une base de données. (par exemple une liste de numéro de bureau, ce genre de choses.)

    La liste peut varier, mais ça ne sera pas quelque chose qui changera si régulièrement que ça.

    Le Form doit rester dans la request, je trouve ça plus logique et plus léger que de le mettre en session.

    Donc soit je m'arrange pour que ma méthode load charge ma liste de numéro et la stock dans la session,

    soit je charge la liste à chaque affichage de ma .jsp. En cas de chargement à chaque fois, mieux vaut faire appel à la méthode load dans les méthodes executes, ou alors dans la méthode reset de l'actionForm ?

  6. #6
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Citation Envoyé par hadler
    désolé, j'ai oublié de préciser que le combo-box se chargeait avec des données venant d'une base de données. (par exemple une liste de numéro de bureau, ce genre de choses.)
    Ca ne change rien et je pensais bien comme ca. Mais il peut y avoir des valeurs fxe dans une base, comme dan mon exemple avec Mr / Mme et Mlle (un peu basic mais un exemple).

    La liste peut varier, mais ça ne sera pas quelque chose qui changera si régulièrement que ça.
    Après à toi de voir si elle peut varier une fois par jour ou une fois par mois.
    Mais c'est un peu dommage de reloader 800 fois par jour une combo qui ne change de valeur qu'une fois par mois

    Donc soit je m'arrange pour que ma méthode load charge ma liste de numéro et la stock dans la session,

    soit je charge la liste à chaque affichage de ma .jsp. En cas de chargement à chaque fois, mieux vaut faire appel à la méthode load dans les méthodes executes, ou alors dans la méthode reset de l'actionForm ?
    Oui tu as bien compris les 2 solutions qui s'offrait à toi. Pour loader les valeurs de ta (tes) combo(s) dans la methode load c'est beaucoup mieux car tu as acces plus facillement au form et puis c'est plus logique.

    La methode reset ne sert que pour initialiser ton formulaire avant l'envoi. Donc quand tu appuie sur submit il fait d'abord le reset avant de populer avec les valeurs de ton form et passe ensuite dans la methode execute.


    PS: si elle ne change que très peu souvent et que tu as la main sur les modifs : mettre tes valeurs en session. Et quand modif/ajotu ou suppression reload de la combo a ce moment la!

  7. #7
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    Merci des infos, je vais voir maintenant quel est la solution la plus appropriée et tester pour être certain que je ne fais pas de bourdes, et ainsi pouvoir mettre un tag résolu ici

    mais ya quand même une de tes dernières réponses que me fait douter :

    Citation Envoyé par maxf1
    Oui tu as bien compris les 2 solutions qui s'offrait à toi. Pour loader les valeurs de ta (tes) combo(s) dans la methode load c'est beaucoup mieux car tu as acces plus facillement au form et puis c'est plus logique.
    La méthode load doit bien se trouver dans ma classe qui hérite de DispatchAction quand même ? parce que je ne vois pas trop en quoi l'accès plus facile au form joue dans ce cas.

  8. #8
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Citation Envoyé par hadler
    La méthode load doit bien se trouver dans ma classe qui hérite de DispatchAction quand même ? parce que je ne vois pas trop en quoi l'accès plus facile au form joue dans ce cas.

    Oui tout à fait.

    Non l'accès au form laisse tomber j'ai laissé ma tete devant la machine a café lorsque je t'avais dit ca,

  9. #9
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    ha, ben nickel tout ça alors, parce que j'ai eu peur un instant quand même

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

Discussions similaires

  1. modification d'un combo box
    Par bourguy dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/02/2005, 16h14
  2. Réponses: 2
    Dernier message: 23/06/2004, 13h56
  3. [VB.NET] Choisir les valeurs des items d'un combo box?
    Par Eithelgul dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2004, 10h13
  4. Réponses: 2
    Dernier message: 11/05/2004, 11h17
  5. Combo box et liste de valeurs contenues dans ma table
    Par TieumB dans le forum C++Builder
    Réponses: 14
    Dernier message: 05/04/2004, 18h47

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