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

JSF Java Discussion :

Récupérer la valeur d'un SelectOneMenu Dynamique


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut Récupérer la valeur d'un SelectOneMenu Dynamique
    Bonjour,

    j'ai crée dynamiquement 3 objects :
    - une liste deroulante( SelectOneMenu )
    - un champ text ( InputText )
    - un boutton ( CommandButton )

    et je les associé à un GridPanel pour les afficher sur ma page jsp

    Code :

    => page.jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:panelGrid binding="#{option.gridPanel1}" border="0" rules="all" title="valider">  
     
    		      		  	    <h:commandButton value=" + Requete " action="#{option.requeteplus}" />
    		   </h:panelGrid>
    => myBeans :

    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
     
    public String requeteplus() {
     
    		if (gridPanel1 == null) {
    			gridPanel1 = new HtmlPanelGrid();
    		}
     
    		HtmlSelectOneMenu temp = new HtmlSelectOneMenu();
    		HtmlCommandButton button = new HtmlCommandButton();   
    		HtmlInputText tf = new HtmlInputText();
     
    		button.setValue("afficher valeur");
     
    		list = new UISelectItems();
    //colonnes est une liste de type : List<SelectItem>  		
                    list.setValue(colonnes);
    		temp.getChildren().add(list);
     
    		int index = gridPanel1.getChildren().size();
    		gridPanel1.getChildren().add(index, temp);
    		gridPanel1.getChildren().add(index, button);
    		gridPanel1.getChildren().add(index, tf);
     
    		return "";
    	}
    j'arrive à visualiser les composants correctement
    ma question est : L'orsque je selectionne un element de la liste(SelectOneMenu) et je valide par le boutton, comment faire pour recuperer la valeur selectionnée et l'afficher sur le champ text ?

    merci d'avance ...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut
    toujours pas de reponse !!!!!

    j'ai cherché mais j'ai rien trouvé ...

    SVP j'ai vraiment besoin de votre aide

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    1) pourquoi utiliser un binding plutot que de mettre directement le composant dans le template? C'est pas l'idée de JSF de créer et initialiser les composant dans tes beans
    2) Ce n'est pas comme ça qu'on instancie des composant JSF, il faut passer par les factories ad-hoc qui les initialiseraont. Elle se trouvent dans Application:
    Application.createComponent(....)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut
    merci pr ta reponse et désolé parce que je suis débutant en jsf, c'est pour cela j'ignore encore des choses la dont

    j'ai modifié mon code ( j'ai crée un bouton/ liste deroulante/ champ Text et un Gridpanel ) :
    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
    26
    27
    28
     
    public String requeteplus() {
     
    		javax.faces.application.Application application =  FacesContext.getCurrentInstance().getApplication();   
     
    		if (gridPanel1 == null) {
    			gridPanel1 = (HtmlPanelGrid) application.createComponent(HtmlPanelGrid.COMPONENT_TYPE);
    		}
     
    			HtmlSelectOneMenu temp = (HtmlSelectOneMenu) application.createComponent(HtmlSelectOneMenu.COMPONENT_TYPE);
    		HtmlInputText text = (HtmlInputText) application.createComponent(HtmlInputText.COMPONENT_TYPE);
    		HtmlCommandButton button = (HtmlCommandButton) application.createComponent(HtmlCommandButton.COMPONENT_TYPE);
     
    		button.setId("ok");   
     
    		button.setValue(" Click!! ");
     
    		list = new UISelectItems();
    		list.setValue(colonnes);
    		temp.getChildren().add(list);
     
    		int index = gridPanel1.getChildren().size();
    		gridPanel1.getChildren().add(index, temp);
    		gridPanel1.getChildren().add(index, button);
    		gridPanel1.getChildren().add(index, text);
     
    		return "";
    	}
    maintenant l'orsque je tape sur le bouton, je veux qu'un String s'affiche sur le champ Text, j'ai fais cela :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    	public String requeteplus() {
     
    		javax.faces.application.Application application =  FacesContext.getCurrentInstance().getApplication();   
     
    		if (gridPanel1 == null) {
    			gridPanel1 = (HtmlPanelGrid) application.createComponent(HtmlPanelGrid.COMPONENT_TYPE);
    		}
     
    			HtmlSelectOneMenu temp = (HtmlSelectOneMenu) application.createComponent(HtmlSelectOneMenu.COMPONENT_TYPE);
    		HtmlInputText text = (HtmlInputText) application.createComponent(HtmlInputText.COMPONENT_TYPE);
    		HtmlCommandButton button = (HtmlCommandButton) application.createComponent(HtmlCommandButton.COMPONENT_TYPE);
     
    		button.setId("ok");   
     
    		javax.faces.el.MethodBinding mb = application.createMethodBinding("#{option.afficher}", new Class[] { ActionEvent.class } ); 
    		button.setActionListener( mb );
     
    		button.setValue(" Click!! ");
     
    		list = new UISelectItems();
    		list.setValue(colonnes);
    		temp.getChildren().add(list);
     
    		int index = gridPanel1.getChildren().size();
    		gridPanel1.getChildren().add(index, temp);
    		gridPanel1.getChildren().add(index, button);
    		gridPanel1.getChildren().add(index, text);
     
    		return "";
    	}
     
    	public void afficher( ActionEvent event ){
    		Object obj = event.getSource();
     
    		if(obj.equals(button)){
    			tf.setText(" Bonjour !! ");
    		}
    	}
    ** à l'execution rien ne change !!!!

    ** j'ai les Methodes "MethodBinding" / "createMethodBinding(..);" et "setActionListener(..);" barrée sur mon code !!!

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    En fait, j'arrive pas a comprendre ce que tu essaie de faire avec ton code
    Pour récupérer la valeur d'un selectonemenu, ca se fait normalement comme avec tout composant, via le value binding:

    <h:selectOneMenu value="#{monBean.maValeur}">....

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut
    ok, voila ce que je veux faire

    le code precedent c'est celui de mon Beans, et sur ma page JSP j'ai tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
    <%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
     
    			<h:panelGrid binding="#{option.gridPanel1}" columns="3" border="0" rendered="#{option.visible9}" rules="all" title="valider">  
     
    		        <!--  /////////////////////////////// -->
    		  	    <h:commandButton value=" + Requete " action="#{option.requeteplus}" />
    		   </h:panelGrid>
    comme c'est noté il y a juste le Tag de PanelGrid que je lui associer les autres composants denifient sur mon Beans(bouton/liste deroulante/champ text) à fin de les affichers sur ma page jsp ( j'ai pas besoin de créer un tag pour chaque composant parce que je vais les ajouter dynamiquement, autant de fois que je veux par un simple click sur le bouton "+ Requete")

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/08/2008, 09h48
  2. récupérer les valeurs d'un formulaire dynamique
    Par une_tite_question dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2008, 16h06
  3. Récupérer la valeur de champs générés dynamiquement
    Par dedeloux dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/04/2008, 22h00
  4. Réponses: 4
    Dernier message: 09/08/2007, 13h52
  5. Récupérer les valeurs des champs créés dynamiquement
    Par outlawz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/05/2006, 16h32

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