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 :

Converter Erreur !


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 26
    Par défaut Converter Erreur !
    J'ai besoin d'aide, je suis actuellement entrain de développer une application jee en utilisant jsf1.2 spring3.0.0, hibernate ... et jaxb2

    mon 1ere problème, c'est avec un converter : j'ai une liste de Array que je récupère à partir d'une liste construite à partir d'un fichier Xml, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <List>
    <Var>item1</Var>
    <Var>item1</Var>
    <Var>item1</Var>
    </List>
    avec Jaxb2.0, cette list est reprensenté sous forme de array liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected List<Var> varList;
    Alors quand j'utilise cette liste pour selectOneRadio me genre une erreur, là j'ai pensé à utilisé à faire un converter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:selectManyListbox  converter="appSelectItemsConverter">
        <f:selectItems value="#{list.varList}" />
    </h:selectManyListbox>
    implémentation de ses méthodes

    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
     public Object getAsObject(FacesContext context, UIComponent component,
                String value) {
     
            int index = value.indexOf(':');
     
            return new SelectItem(value.substring(0, index), value.substring(index + 1));
        }
     
     
        public String getAsString(FacesContext context, UIComponent component,
                Object value) {
     
            Champ champ = (Champ) value;
            return champ.getId() + ":" + champ.getLibelle();
        }
    je ne sais pas si c'est correct ou pas, mais de toute façon, ça ne marche pas !

    l'idée générale, c'est de construire des formulaire générique à partir d'un contenu xml, si vous avez des idées !!

    Merci

  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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Les <f:selectItems> ne prennent exclusivement que des List<SelectItem>.
    Un SelectItem est essentiellement un couple (clé, label), le label étant ce qui est affiché à l'utilisateur, quant à la clé, elle te permet d'identifier l'objet qui a été séléctionné par l'utilisateur.

    Etant donné que la clé est un Object, si celui-ci n'est pas un type primitif (ou classe équivalente, comme Long par ex.) ou une String, alors il te faut passer par un converter, dont le rôle est de faire la conversion "String" <--> "Object".

    Donc à la limite, si tes item contenus dans les balises Var ne sont que des chaines de caractères, la conversion est simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<SelectItem> list = new ArrayList<SelectItem>();
    for (Var v : getVars()) {
        list.add(new SelectItem(v.getItem()));
    }
    Si item est par exemple un couple (clé, valeur), alors tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<SelectItem> list = new ArrayList<SelectItem>();
    for (Var v : getVars()) {
        list.add(new SelectItem(v.getId(), v.getLabel()));
    }
    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

Discussions similaires

  1. Vm converter erreur creation snapshot
    Par ip203 dans le forum VMware
    Réponses: 1
    Dernier message: 26/04/2011, 08h51
  2. fonction CONVERT : erreur étrange
    Par Zippp77 dans le forum Développement
    Réponses: 18
    Dernier message: 26/07/2010, 11h57
  3. Erreur de convertion de type de données
    Par ben_skywalker dans le forum Access
    Réponses: 14
    Dernier message: 06/06/2006, 11h39
  4. erreur généré pour une convertion de donnée
    Par poporiding dans le forum C++
    Réponses: 6
    Dernier message: 04/04/2006, 11h01
  5. Réponses: 2
    Dernier message: 31/01/2006, 14h31

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