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 :

Sélection de valeur dans liste déroulante


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Sélection de valeur dans liste déroulante
    Bonjour,

    Je suis un débutant en struts et je rencontre un problème que je n'arrive pas à résoudre,
    je sais qu'il y a déjà plusieurs messages similaires mais je ne trouve jamais ce qu'il me faut.

    J'ai une liste déroulante coder de cette façon dans mon jsp:
    <html:form action="selectedt">
    <bean:define id ="nom" name="select" property="choix"/>
    <html:select name="select" property="choix">
    <html:option value="<%= (String)nom %>"/>

    </html:select>
    <html:submit>Consulter</html:submit>
    </html:form>
    et je voudrais pouvoir, en sélectionnant une valeur dans ma liste,
    rafraîchir ma page jsp, en faisant passer la valeur sélectionnée en paramètre.

    Comment doit-je faire dans mon actionform, puis dans mon action pour récupérer la valeur de ma liste sélectionner (j'utilise un submit)?

    J'espère avoir était à peu près clair

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    Je vais tenter d'être concis et clair.

    Tu vas soumettre ton formulaire vers l'action 'selectedt' comment ca marche au niveau de struts ou plutot au niveau du navigateur web.
    Le navigateur lors du clic sur le bouton 'submit' ton navigateur va passer dans la requête(request) un paramètre du nom du champ de ton formulaire ici, tu auras donc un paramètre nommé 'choix' ayant la valeur: nom
    Du coté de struts, avant de rentrer dans ta méthode, il va se passer ce que l'on appelle le "populate", qui, à partir des fichiers de conf struts et des paramètres passés dans la requête, va remplir ton action form avec la valeur que tu as soumise. Pour que tu puisses retrouver la valeur de ton champ 'choix' dans ton ActionForm, il est impératif que tu es un 'setter' (méthode permettant d'initialiser) possédant le même nom que le nom de ton paramètre. Ainsi dans ton cas, il te faut un setter nommé setChoix. Car la méthode populate de la classe BeanUtils (je te conseille d'aller y faire un tour en mode débogage pour bien comprendre), va vérifier qu'il existe bien un setter correspondant au nom de ton paramètre et l'invoquer si celui ci existe.

    Ton ActionForm doit avoir la tête qui suit:
    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
    public class MonForm extends ActionForm{
    private String fChoix;
     
    public String getChoix(){
    return fChoix;
    }
     
    public void setChoix(String choix){
    fChoix = choix;
    }
     
    public void reset(ActionMapping mapping, HttpServletRequest request ){
    // on appelle le super de la classe mère par principe... question d'héritage
    super.reset(mapping,request);
     
    fChoix = "";
     
    }
     
    }
    Dans ton action tu pourras ainsi faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MonForm monForm = (MonForm)form;
    String monChoix = monForm.getChoix();
    En espérant avoir répondu à ta question. Je souligne le fait qu'il est indispensable de comprendre comment sont récupérés par Struts les paramètres soumis par le navigateur.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse!

    Donc si je comprend bien, ensuite dans ma page jsp qui sera rafraichîe je doit faire (par exemple si je veux afficher le nom sélectionner):

    <bean:write name="selectedt" property="choix"/>

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Oui dans l'absolu...
    Veille à ce que dans le name de ton bean:write corresponde au nom de ton formulaire déclaré dans ton struts-config.xml. Si tel est le cas, alors cela marchera comme tu le souhaites.

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

Discussions similaires

  1. [AC-2007] Valeur dans liste déroulante
    Par CrasherSEP dans le forum VBA Access
    Réponses: 3
    Dernier message: 24/09/2010, 10h29
  2. [PHP-JS] Sélection de données dans liste déroulante
    Par guigui69 dans le forum Langage
    Réponses: 2
    Dernier message: 04/09/2007, 13h54
  3. récupération de valeur dans liste déroulante
    Par kumo dans le forum Requêtes et SQL.
    Réponses: 23
    Dernier message: 04/06/2007, 09h21
  4. récupération valeur dans liste déroulante
    Par kumo dans le forum Modélisation
    Réponses: 9
    Dernier message: 26/05/2007, 18h47
  5. [SQL] récupérer sélection dans liste déroulante
    Par nerick dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/12/2005, 11h30

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