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 :

html:select selected ?


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut html:select selected ?
    Bonjour,

    Mon problème est le suivant : comment pré-selectionner un élément dans le html:select ?

    voici mon code du coté 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
    List listeEta = null;
     
             try
     		{
     
             	HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();
             	Session session =(Session)HibernateUtil.getSessionFactory().getCurrentSession();
     
             	Criteria criteriaEta=session.createCriteria(Etablissement.class);
     
             	listeEta=criteriaEta.list();
     
             	HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().commit();
     		}	
     		catch(Exception he)
     		{
     			System.out.println(he);
     			HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
     		}	
     
     		ses.setAttribute("listeEta", listeEta);
    Je récupère donc une liste d'établissements que j'envoie dans la session ! Comment faire pour en sélectionner un ?

    voici mon code du coté de la jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="etuInsPreEtablissement">
    <html:optionsCollection name="listeEta" value="etaId" label="etaLibelle"/>
    </html:select>
    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
    As tu regardé la valueur de etuInsPreEtablissement dans ton form ? Si oui quelle est elle?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    je ne l'ai pas initialisé !
    si j'attribue une valeur etuInsPreEtablissement dans le form ?
    il va automatiquement la prendre ?
    comment faire ?

  4. #4
    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
    C'est une idée... Je ne suis pas sur à 100%.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    Ca n'a pas fonctionné.

  6. #6
    Expert confirmé

    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
    Par défaut
    Il faut effectivement initialiser la propriété etuInsPreEtablissement dans l'Action qui s'exécute avant l'affichage du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TonActionForm tonActionForm=(TonActionForm) form ;
    tonActionForm.setEtuInsPreEtablissement("valeurApreselectionner") ;
    Ceci implique de référencer le form-bean via l'attribut name dans le mapping de cette Action dans le struts-config.xml.

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    Est ce que ca fonctionne avec les DynaActionForm ?

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DynaValidatorForm dynaFicIndForm =(DynaValidatorForm)form;
            dynaFicIndForm.set("etuInsPreEtablissement", "eta1");
     
            request.setAttribute("dynaFicIndForm", dynaFicIndForm);
    mais ca ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    javax.servlet.ServletException: Invalid property name 'etuInsPreEtablissement'
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

  8. #8
    Expert confirmé

    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
    Par défaut
    As-tu bien référencé le form-bean dynaFicIndForm dans le mapping de cette Action ?

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    Beh ya un point que je ne comprends pas trop !

    voici mon struts-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
     
     
    <form-bean name="dynaFicIndForm" type="org.apache.struts.validator.DynaValidatorForm">
    	        	<form-property name="etuNom" type="java.lang.String" />
    ....
     
    	        </form-bean>
    ..
     
    <action path="/prepareFicInd"
            			type="com.artemis.ia.PrepareFicIndAction"
    	                scope="request"
    	                input="/jsp/ia/ficIndForm.jsp"
    	                validate="true">
    	            <forward name="success" path="/jsp/ia/ficIndForm.jsp"/>
    	        </action>
     
            	<action name="dynaFicIndForm" path="/processFicInd" 
            		scope="request"
            		type="com.artemis.ia.IaSaisieEtudiantAction"
            		validate="true"
            		input="page.prepareFicInd"
            		parameter="method">
            			<forward name="success" path="/jsp/ia/insAdmForm.jsp"/>
            	</action>
    C'est donc dans la premiere classe (PrepareFicIndAction) que je crée mon Form avec les valeurs selectionnées puis je l'envoie dans la session?

    voici mon code ds PrepareFicIndAction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     HttpSession ses = request.getSession(true);
     
            DynaValidatorForm dynaFicIndForm =(DynaValidatorForm)form;
            dynaFicIndForm.set("etuNom", "coucou");
     
            ses.setAttribute("dynaFicIndForm", dynaFicIndForm);
    l'erreur est la suivante

    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
    exception
     
    javax.servlet.ServletException
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
    cause mère
     
    java.lang.NullPointerException
    	com.artemis.ia.PrepareFicIndAction.execute(PrepareFicIndAction.java:109)
    	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    la ligne d'erreur est attribuée a la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dynaFicIndForm.set("etuNom", "coucou");
    Merci pour votre aide ..

  10. #10
    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
    ton dynaform doit etre null...

    dans le fichier de conf struts, essai d'ajouter à ton action le parametre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <action name="dynaFicIndForm" path="/processFicInd" 
            		scope="request" attribute="dynaFicIndForm"
            		type="com.artemis.ia.IaSaisieEtudiantAction"
            		validate="true"
            		input="page.prepareFicInd"
            		parameter="method" >
            			<forward name="success" path="/jsp/ia/insAdmForm.jsp"/>
            	</action>

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    Ca ne marche pas ...

  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
    as tu debuguè ? ta propriété existait elle dans ton DynaForm?

  13. #13
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    oui j'ai débuggé ... ma propriété n'existe pas dans le DynaFicIndForm

  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
    je sèche... dans ce cas de figure, code ton form...

  15. #15
    Expert confirmé

    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
    Par défaut
    Dans le mapping de l'Action PrepareFicIndAction, il faut ajouter name="dynaFicIndForm", mettre le scope à session et validate à false :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <action path="/prepareFicInd"
            type="com.artemis.ia.PrepareFicIndAction" 
            name="dynaFicIndForm"  scope="session" validate="false">
       <forward name="success" path="/jsp/ia/ficIndForm.jsp"/>
    </action>
    Il faut également mettre le scope à session dans le mapping de l'Action IaSaisieEtudiantAction.
    Et enfin, il n'est pas utile de mettre le form-bean dans la session dans l'Action PrepareFicIndAction.
    Tu peux donc supprimer cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            ses.setAttribute("dynaFicIndForm", dynaFicIndForm);

  16. #16
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    Beh une fois de plus c_nvy résout un de mes problèmes ...
    Vas falloir que je t envoie des chocolats ...

    merci encore ...
    et a biento pour d'autres questions ...

  17. #17
    Expert confirmé

    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
    Par défaut
    Citation Envoyé par parasol007 Voir le message
    Vas falloir que je t envoie des chocolats ...
    miam miam
    Citation Envoyé par parasol007 Voir le message
    merci encore ...
    De rien.
    Citation Envoyé par parasol007 Voir le message
    et a biento pour d'autres questions ...
    sans problème.

  18. #18
    Expert confirmé

    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
    Par défaut Petite remarque
    Je n'ai pas pensé à te demander au début de la discussion si la valeur que tu voulais pré-sélectionner était fixe.
    Si c'est le cas, il y a une solution plus simple qui consiste à coder en dur cette valeur dans l'attribut initial de la balise form-property.
    Je ne sais pas si cela correspond à ton cas.

  19. #19
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    En fait je charge des valeurs en bdd qui peuvent varier ... donc c'est parfait cette solution ..

  20. #20
    Expert confirmé

    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
    Par défaut
    Ok.

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

Discussions similaires

  1. [ASP] utilisation de <select selected=selected >
    Par richard_sraing dans le forum ASP
    Réponses: 10
    Dernier message: 26/04/2010, 15h52
  2. Réponses: 1
    Dernier message: 07/11/2006, 16h16
  3. [html:optionsCollection] selection mutiple
    Par abdoulzak dans le forum Struts 1
    Réponses: 1
    Dernier message: 30/10/2006, 11h39
  4. html:radio - sélection par défaut
    Par zizou771 dans le forum Struts 1
    Réponses: 3
    Dernier message: 05/07/2006, 12h26
  5. html:optionsCollection selected
    Par babylone7 dans le forum Struts 1
    Réponses: 8
    Dernier message: 02/08/2004, 14h34

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