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 :

Problèmes de conversion sur SelectOneMenu


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 31
    Par défaut Problèmes de conversion sur SelectOneMenu
    Salut à tous !

    Lorsque je tente d'alimenter un selectOneMenu à partir d'une base de données, j'ai un problème de conversion.

    JSF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:outputLabel id="resolverLabel" for="resolverListBox" value="Correcteur" />
    <h:selectOneMenu id="resolverListBox" styleClass="selectOneMenu" value="#{productionProblemController.productionProblem.resolver.id}">
    	<f:selectItems id="resolverListBoxValues" value="#{productionProblemValueProvider.resources}" />
    </h:selectOneMenu>
    productionProblemValueProvider.resources est un TreeMap avec une String en clé en un Long en value.

    Une solution consiste évidemment à typer la value du TreeMap en String mais j'obtiens le même problème lorsque le formulaire alimente le champ productionProblemController.productionProblem.resolver.id de mon Bean (type : Long).

    Commet faire pour spécifier un converter adéquat ?
    Ou quel faut-il faire pour éviter ce genre de problèmes ?

    Merci pour vos réponses.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    Je vois 2 solutions :

    La + simple : tu fais la conversion dans ton setter et tu laisse la value de ton treemap en string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void setId (String value){
    this.id = Long.toString(value);
    }
    La + compliqué : tu fais une classe qui implement converter (2 fonctions à surchargés). et tu lie cette classe avec ton selectOneMenu grâce à à l'attribut converter de ce tag.

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 31
    Par défaut
    Merci pour ces eclaircissements !

    La solution à base de Converter ne semble pas fonctionner telle que je l'ai appliquée et je préférerais éviter la seconde.
    Il me manque sûrement quelques informations quant au fonctionnement des listes SelectOneMenu.

    Pour faire plus simple mon problème est le suivant :
    • Je souhaiterais associer la sélection d'une liste à une propriété d'un Bean.
    • Ma liste est remplie via un TreeMap<String, String>.
    • La valeur (String) du TreeMap est en fait un identifiant technique que je voudrais associer à l'une des propriétés de mon Bean.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:outputLabel id="resolverLabel" for="resolverListBox" value="Correcteur" />
    <h:selectOneMenu id="resolverListBox" styleClass="selectOneMenu" value="#{productionProblemController.productionProblem.resolver.id}">
    	<f:selectItems id="resolverListBoxValues" value="#{productionProblemValueProvider.resources}" />
    </h:selectOneMenu>
    Mes Beans sont de la forme :
    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 ProductionProblemController{
    private ProductionProblem productionProblem;
    ...
    }
     
    public class ProductionProblem{
    private Resource resolver;
    ...
    }
     
    public class Resource{
    private Long id;
    private String name;
    ...
    }
    Questions :
    • Ma déclaration de SelectOneMenu est-elle correcte ?
    • Dans le cas présent, le converter doit-il porter sur l'objet Resource ?
    • ...


    Merci pour votre aide !!

  4. #4
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 31
    Par défaut
    Même en me pliant à la solution 2 (utilisation de String) j'ai toujours le même problème de conversion.
    En gros je suis incapable de binder le résultat d'un SelectOneMenu avec une propriété de Bean !!

    Les traces serveur affichent l'informations suivante :
    GRAVE: Error finding Converter for component with id createForm:resolverListBox

    Quelqu'un peut-il m'expliquer comment marche les SelectOneMenu ?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    Tput d'abord arrive tu à avoir ton selectOneMenu ? Est ce que le probléme survient que tu crée ton selectOneMenu ou quand tu enregistre le choix de l'utilisateur dans ta variable id ?

    sinon le <f:selectItems > ne prend que destypes SelectItems, est ce bien ce que tu lui passe ?

    value="#{productionProblemValueProvider.resources}" . ressources doit etre une liste ou un tableau de selectItem.

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 31
    Par défaut
    productionProblemValueProvider.resources est bien une liste de SelectItem.
    Elle s'affiche correctement.

    En revanche, lorsque je soumets mon formulaire, j'obtiens des erreurs de conversion que je ne m'explique pas.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/10/2012, 13h58
  2. Problème de conversion sur une partition.
    Par ifebo dans le forum Windows XP
    Réponses: 5
    Dernier message: 26/07/2011, 22h58
  3. Réponses: 7
    Dernier message: 27/05/2011, 17h00
  4. Réponses: 1
    Dernier message: 25/09/2006, 09h50
  5. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56

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