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 :

les tag select remplie dynamiquement


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut les tag select remplie dynamiquement
    bonjour tous le monde
    je suis entraint de développer une application web en utilisant struts et j'ai rencontrer une defficulté au niveau des tag select je veut qu'ils soient remplient apartir de la base de donné.
    à ce stade j'ai testé avec de simple tableaux String[]. voila ce que j'ai fait:

    j'ai une page index.jsp contenant un formulaire.en validant, l'Action associer à ce formaliare est applé pour me forwarder normalement vers une page dossier.jsp qui contient les tag select que je veut remplire à partire du tableau
    String[] appelé "listeFonction" que j'ai ajouter comme attribut dans le bean associer à la jsp dossier.jsp.
    j'ai ajouteé une action pour initialiser ce tableau avec des valeur qcq.
    donc dans mon struts-config j'ai fait ceci :

    Code xml : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <struts-config>
    
    	<!-- Form bean -->
    
    	<form-beans>
    		<!-- Bean Accueil pour index.jsp-->
    		<form-bean name="AccueilBean"
    					type="Bean.AccueilBean">
    		</form-bean>
    		<!-- Bean Dossier pour dossier.jsp -->
    		<form-bean name="DossierBean"
    					type="Bean.DossierBean">
    		</form-bean>
    	</form-beans>
    
    	<!-- Action mapping -->
    	<action-mappings>	
    		<!-- Action Accueil -->
    		<action path="/accueil"  
    				type="Action.AccueilAction"
    				name="AccueilBean"
    				validate="true"
    				scope="session"
    				input="/vues/index.jsp">
    		<!-- <forward name="success" path="/vues/Dossier.jsp"></forward> -->
    			<forward name="success" path="/init.do"></forward>		
    		</action>
    		
                                <!-- Action pour initialiser le tabeau "listeFonction" -->
    		<action path="/init"
    				type="Action.InitAction"
    				name="DossierBean"
    				scope="session">
    			<forward name="success" path="/vues/Dossier.jsp"></forward>
    		</action>		
    		
                             <!-- Action Dossier -->
    		<action path="/Dossier"
    				type="Action.DossierAction"
    				name="DossierBean"
    				validate="true"
    				scope="request"
    				input="/vues/Dossier.jsp">
    		<forward name="Dsuccess" path="/vues/success.jsp"></forward>		
    		</action>
    	</action-mappings>
    	
    	<!-- Message resources -->
    	<message-resources parameter="messages.ApplicationResources"></message-resources>
    </struts-config>
    donc j'ai ajouté un Action intermediare applé InitAction associer au meme Bean que la page dossier.jsp pour pouvoire acceder au atributs de ce formulaire et notament le tabeau de String[] "listeFonction" pour le remplire :

    voila la methode excute de cet Action qui initialise le tableau "listeFonction" :

    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
    public class InitAction extends Action 
    {
    			public ActionForward execute(ActionMapping mapping,
    										ActionForm form, 
    										HttpServletRequest request,
    										HttpServletResponse response)
    								throws ServletException, IOException 
    			{
    				DossierBean frm=(DossierBean)form;
    				String[] lst={"programeur","analyste","developpeur"}; 
    				frm.setListeFonc(lst);
    				return mapping.findForward("success");
     
    			}
     
    }
    j'espere que j'été clair jusqu'à maintenant.

    et dans ma page Dossier.jsp j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="fonexc" size="8" multiple="multiple" styleClass="champs">                         
          <html:optionsCollection property="listeFonc"/>
    </html:select>
    bien sur mon tag <html:form> contient l'attribut name="DossierBean"
    c'est pour cela que j'ai pas mis de name dans la tag <html:seletc> et <html:optionsColletion>

    le probleme que ca ne marche pas.
    je ne sais pas si c'est correcte ce que j'ai fait.
    est ce qu'il n'y a pas de maniere plus simple pour faire.
    merci d'etre aussi passion

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    si tu utilises le taglib <html:options> à la place du <html:optionsCollection> est-ce mieux?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="fonexc" size="8" multiple="multiple" styleClass="champs">
    <html:options property="listeFonc"/>
    </html:select>

  3. #3
    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 mattheox
    si tu utilises le taglib <html:options> à la place du <html:optionsCollection> est-ce mieux?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="fonexc" size="8" multiple="multiple" styleClass="champs">
    <html:options property="listeFonc"/>
    </html:select>
    Ca ne changera rien. Peux-tu nous dire qu'est ce qu'il ne marche pas? Tu as une erreur? Pas d'erreur mais ton select à toujours la premiere valeur?

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut
    je n'est pas 'erreurs mais mon formlaire n'est pas affiché en totalité il y a des champs qui ne sont pas affichés

    je me demande est ce que ce que j'ai fait est correcte surtout

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <action path="/accueil"  
    				type="Action.AccueilAction"
    				name="AccueilBean"
    				validate="true"
    				scope="session"
    				input="/vues/index.jsp">
    		<!-- <forward name="success" path="/vues/Dossier.jsp"></forward> -->
    			<forward name="success" path="/init.do"></forward>		
    		</action>
    appeler un Action dans le forward ?

  5. #5
    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
    Je ne sais pas si tu as implémenté une méthode validate dans ton ActionForm de name DossierBean mais si c'est le cas, il faut mettre validate="false" dans le mapping de l'Action InitAction.
    De plus, il faut mettre scope="session" dans le mapping des deux Actions :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <action path="/init"
    		type="Action.InitAction"
    		name="DossierBean"
    		scope="session"
    		validate="false">
    	<forward name="success" path="/vues/Dossier.jsp"/>
    </action>		
    <action path="/Dossier"
    		type="Action.DossierAction"
    		name="DossierBean"
    		validate="true"
    		scope="session"
    		input="/vues/Dossier.jsp">
           <forward name="Dsuccess" path="/vues/success.jsp"/>
    </action>
    Ensuite, s'agissant d'un tableau de String, il faut bien coder le html:options comme conseillé par mattheox , soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="fonexc" size="8" multiple="multiple" styleClass="champs">
       <html:options property="listeFonc"/>
    </html:select>

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 44
    Par défaut
    merci enormement pour ce precieux conceil ca marche.
    mais encore une chose vous me dite de mettre validate="false" dans mon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <action path="/init"
    		type="Action.InitAction"
    		name="DossierBean"
    		scope="session"
    		validate="false">
    	<forward name="success" path="/vues/Dossier.jsp"/>
    </action>
    ce qui implique que je ne peut pas faire de validation sur ce formulaire ?
    si c'est le cas soyez simpas de m'indiquer une autre maniere de faire car je dois avoir une validation sur ce formulaire.

    merci

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

Discussions similaires

  1. Récuperation valeur select rempli dynamiquement
    Par titi6913 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 22/07/2009, 08h47
  2. Method Post et Select rempli dynamiquement
    Par bor1s dans le forum ASP
    Réponses: 3
    Dernier message: 06/03/2007, 08h01
  3. Recupere les tag d'entete d'un fichier mp3
    Par kirbs dans le forum C++Builder
    Réponses: 7
    Dernier message: 05/10/2006, 17h40
  4. compter les éléments sélectionné dans un tag select
    Par lemmings dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2006, 14h07
  5. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57

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