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 :

Différents h:selectOneMenu qui retournent la même valeur


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Par défaut Différents h:selectOneMenu qui retournent la même valeur
    Bonjour,

    Dans ma page JSF j'ai deux h:selectOneMenu (alimentés par la même "List de villes" d'un beans ).
    apres le choix de ville ( il s'agit ici de choisir la ville de départ et celle d'arrivée d'un vol ) et l'insertion dans la base de donnés : les deux "selectOneMenu" "retournant" toujours la valeur de la ville choisie dans le 2 ieme selectOneMenu , du coup j'ai toujours la même ville (dans le départ et l'arrivée ).
    JSF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <h:selectOneMenu id="departure" value="#{flightController.flight.city.idcity}"  >  
     <f:selectItems value="#{flightController.listcity}" var="city1" itemLabel="#{city1.titre}" itemValue="#{city1.idcity}" />  
    </h:selectOneMenu>  
     
    <h:selectOneMenu  id="arrival" value="#{flightController.flight.city1.idcity}" >  
     <f:selectItems  value="#{flightController.listcity}" var="city2" itemLabel="#{city2.titre}" itemValue="#{city2.idcity}" />  
     </h:selectOneMenu>
    je me suis aperçu que le changement ce fait avant la persistance des données
    avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    System.out.println("ville départ "+flight.getCity() );
    System.out.println("ville arrivée "+flight.getCity1() );
    flightFacade.create(flight);
    j'ai la même ville comme résultat ( celle du h:selectOneMenu id="arrival" )

    ...enfin j'espére que quelq'un prendrea la peine de lire tout ca

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Fais attention, car seuls les ID des villes sont mises à jour par JSF. Donc quand tu fais System.out.println(" > " + flight.getCity()); ça pourrait n'afficher que le label de la ville, qui n'est pa changé.

    Eventuellement, montre nous le code des beans Java...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Par défaut
    Merci Romain,

    sur le System.out.println(" > " + flight.getCity()) je demande l'"affichage" de l'objet , ca me retourne
    INFO: ville départ entity.City[idcity=par]
    INFO: ville arrivée entity.City[idcity=par]
    ou par c'est l'id de la ville de paris (ville d'arrivée seulement lors de mon choix dans le formulaire d'ajout des vols)

    pour mes beans par exemple :

    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
     
    @ManagedBean
    @SessionScoped
    public class FlightController {
        @EJB
        private FlightFacade flightFacade = new FlightFacade();
     
        @EJB
        private CityFacade cityFacade = new CityFacade();
        private List<City> listcity = new ArrayList<City>();
        Flight   flight = new Flight();
     public FlightController() {
     
    }
         public String NavigationCreate(){
         listcity =cityFacade.findallcities();
         return "CreateFlightPage";
     }
     
    public String CreateFlight(){
           try{
    System.out.println("ville départ "+flight.getCity().getTitre() );
    System.out.println("ville arrivée "+flight.getCity1().getTitre() );
    flightFacade.create(flight);  
     }
    getter / setters
    .
    .
    .

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Par défaut
    mon problème n'est il pas lié a la persistance et la manière dont mon modèle relationnel est traduit en objet ? je vais voir du coté du sous forum persistance /jpa/EJB

    Merci

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Par défaut
    problème résolu par l'utilisation d'un convertisseur , bien que je n'arrive toujours pas a comprendre pourquoi ça n'a pas fonctionné avec le code précédent.

    Merci

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

Discussions similaires

  1. Sous-requête qui retourne les mêmes valeurs
    Par messi1987 dans le forum Développement
    Réponses: 5
    Dernier message: 23/09/2014, 19h22
  2. Réponses: 1
    Dernier message: 15/03/2013, 17h26
  3. Réponses: 10
    Dernier message: 21/04/2009, 13h33
  4. Réponses: 5
    Dernier message: 27/05/2008, 08h02
  5. Réponses: 3
    Dernier message: 20/01/2007, 19h09

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