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 :

JSF selectOneMenu changer la valeur de mon selectItems


Sujet :

JSF Java

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Par défaut JSF selectOneMenu changer la valeur de mon selectItems
    Bonjour,

    Je reviens un peu sur le selectOneMenu et sur les selectItems.

    Mon appli permet de gérer des achats de livres et lorsque je sélectionne une catégorie, j'obtiens bien comme affichage les livres d'un même auteur.

    Par contre sur chaque ligne, je veux mettre une liste déroulante pouvant permettre de sélectionner plusieurs exemplaires d'un même livre. Dans ma base de données, j'ai dans ma table "livre" une colonne quantité et je veux dans ma liste déroulante avoir le choix d'une quantité de 0 jusqu'à la quantité que j'ai dans ma base.

    Voici le selectOneMenu de ma jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:selectOneMenu value="#{livreController.selectItem}" >
    			<f:selectItems value="#{livreController.selectItems}"/>
    			</h:selectOneMenu>
    Pour mon controller,

    Dans mon selectItems j'ai une liste de String.


    Si quelqu'un à la moindre idée.

    J'ai essayé de mettre un valueChangeListener mais ca n'a rien donné.

    Peut-on mettre un converter?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Par défaut
    En initialisant (dans ton contrôleur) ta liste dans une boucle avec des entiers de 1 à quantité tu auras une liste contenant ce que tu demandes.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Par défaut
    Oui mais j'ai un problème pour créer ma liste d'items.

    Car ma liste ne garde en mémoire que la liste de mon dernier livre.

    voici ma méthode getSelectItems de mon controller:

    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
     
    public List<String> getSelectItems(){
     
    		List<String> selectedItems = new ArrayList<String>();
    		//dataItemEcrivain récupère l'écrivain séléctionné dans ma liste
    			if(dataItemEcrivain!=null){
    //				récupération des livres de ma base
    				for (int j=0;j<livreService.getListLivres().size();j++){
    					Livre liv= new Livre();
    					liv=(Livre)livreService.getListLivres().get(j);
    //					si le livre de ma base est du meme auteur que
    //					mon livre selectionne alors je créé ma liste 
    //					qui contiendra mes quantités
    					if(dataItemEcrivain.getNomEcrivain().equals(liv.getNomEcrivain())){
    						List<String> selectItems = new ArrayList<String>();
    						for (int i=0;i<=liv.getQuantiteLivre();i++){
    							selectItems.add(String.valueOf(i));
    						}
    						selectedItems=selectItems;	
    					}	
    				}
     
     
    			}

    Je ne vois pas où est l'erreur...

  4. #4
    Membre confirmé Avatar de koack
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Par défaut
    hello,

    Chaque fois que tu trouves un livre qui correspond a l'auteur tu ecrasses ton resultat , commence a 1 aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i=1;i<=liv.getQuantiteLivre();i++){
    selectItems.add(String.valueOf(i));
    }
    selectedItems=selectItems;

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Par défaut
    Oui c'est vrai que j'écrase mon ancienne liste, mais je ne vois pas vraiment comment faire.

    J'ai essayé de redéfinir ma méthode getSelectItems, voici le code:

    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
     
    	public List<String> getSelectItems(){
     
    		//si je place ici
    //		selectItems = new ArrayList<String>();
    		//j'obtiens dans ma liste déroulante toutes mes listes créées
     
    		if(listeLivres!=null){
     
    			//récupère la liste de mes livres à afficher
    			for (Livre li:listeLivres){
    				//initialisation de ma liste de quantités
    				//mais quand je place l'initialisation de ma liste ici
    				//j'obtiens forcément la dernière liste
    				selectItems = new ArrayList<String>();
    				for (int i=0;i<=li.getQuantiteLivre();i++){
    					selectItems.add(String.valueOf(i));
    				}
    			}
    		}
    		return selectItems;
    	}
    J'ai aussi essayé de créer une List<List<String>> pour y injecter toutes mes lignes mais ca n'a pas fonctionné.

    En fait j'aimerai bien savoir comment je lie mes selectItems à mes livres que j'affiche.

  6. #6
    Membre confirmé Avatar de koack
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Par défaut
    Mon appli permet de gérer des achats de livres et lorsque je sélectionne une catégorie, j'obtiens bien comme affichage les livres d'un même auteur.
    l'affichage se fait dans une datatable ?

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

Discussions similaires

  1. [XL-2010] changer le format de mon bouton en fonction de sa valeur (renseigné ou vide)
    Par jkiii dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/12/2013, 11h01
  2. Changer la valeur de mon menu déroulant
    Par cdevl32 dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 21h24
  3. Réponses: 3
    Dernier message: 11/01/2007, 17h52
  4. [JSF] SelectOneMenu transmission valeur
    Par maximus001ma dans le forum JSF
    Réponses: 1
    Dernier message: 14/08/2006, 14h12
  5. Changer la valeur de la MTU sur un LAN
    Par nin2 dans le forum Réseau
    Réponses: 3
    Dernier message: 19/02/2005, 15h47

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