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 :

Convertir un input radio en booleen avec un converter


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 24
    Par défaut Convertir un input radio en booleen avec un converter
    Bonjour à tous,

    depuis quelques jours j'essaie de convertir la valeur retournée par un radio bouton en booléen au lieu du texte "true/false" mais sans succès.

    Mon binding ce fait avec une hashMap donc je ne peux pas directement controler le type sur l'atttribut.
    J'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:selectOneMenu
     value="#{controller.mapOfValue['RADIO']}">
    <f:selectItem itemValue="True" itemLabel="Oui" />
    <f:selectItem itemValue="False" itemLabel="Non" />
    </h:selectOneMenu>
    Ce code place une String "True" à la clé "RADIO" dans ma Map.

    J'ai essayé diverses combinaisons jusqu'à construire mon propre converter mais sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:selectOneMenu
     value="#{controller.mapOfValue['RADIO']}">
    <f:selectItem itemValue="True" itemLabel="Oui" />
    <f:selectItem itemValue="False" itemLabel="Non" />
    <f:converter converterId="javax.faces.Boolean" />
    </h:selectOneMenu>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <h:selectOneMenu
     value="#{controller.mapOfValue['RADIO']}">
    <f:selectItem itemValue="True" itemLabel="Oui" />
    <f:selectItem itemValue="False" itemLabel="Non" />
    <f:converter converterId="monPropreConverter" />
    </h:selectOneMenu>
    avec

    monPropreConverter = class CustomConverter extends BooleanConverter

    mais sans succès également... Lorsque j'utilise un converter j'ai une erreur dans la jsp spécifiant "Value not Valid".

    Si quelqu'un à une idée...

    Merci d'avance,
    kins57

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 152
    Par défaut
    Dans un premier temps essaye en donnant les valeurs "true" et "false" à la place de "True" et "False".
    Dans un second temps, lorsque tu utilises un converter celui-ci dois être déclaré dans le fichier faces-config.xml est-ce le cas ?

    Peux-tu nous montrer ton converter ?

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Je ne vois pas de boutton radio, mais un select..
    et si tu définis la valeur de l'objet de la map en Boolean, tu n'a pas besoin de converter, puisque la valeur transmise est true/false et pas oui/non ..

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 152
    Par défaut
    Tout à fait.

  5. #5
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 24
    Par défaut
    Salut,

    désolé pour le retard, j'étais sur autre chose ces derniers jours.

    Pour répondre à vos questions :
    piopium : j'ai essayé ça n'a rien changé, merci pour la remarque. Et oui le converter est bien déclaré dans le faces-config.xml
    Sniper37 : j'utilise une Map pour récupérer les valeurs du formulaire, chaque champs n'est pas du même type donc la Map est du style Map<String, Object>, je ne peux pas donc mapper ma valeur à un booléen.

    Voici le converter que j'ai créé :

    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 BooleanConverter extends BooleanConverter {
     
    public String getAsString(FacesContext context, UIComponent component, Object object) {
       if (super.getAsString(context, component, object) == null) {
       if ("true".equals(object.toString()) || "false".equals(object.toString())) {
       return object.toString();
    } else {
       return null;
    }
    } else {
    return super.getAsString(context, component, object);
    }
    }
    }
    Pour la méthode getAsObject j'ai l'inverse...

    Je ne comprend pas pourtant le converter à l'air valide... J'ai toujours la même erreur "Valeur not valid...".

    Merci encore,
    A+

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Il n'a pas l'air correct ton code, pourquoi appeler la méthode de la classe mère avant,
    De plus, tu n'a pas besoin d'utiliser un converter pour un booléen, la valeur transmise est true/false pas besoin de la convertir.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/11/2010, 09h36
  2. fonction avec if sur input radio qui ne renvoie pas la bonne valeur
    Par eddflo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/06/2009, 01h20
  3. Convertir un champ DATETIME en DATE avec SQLSERVER
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 11h26
  4. Récupérer un bouton radio en jsp avec Tomcat
    Par Paradoxys dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/03/2005, 12h07
  5. champs booleen avec ibexpert
    Par crocodingo dans le forum Outils
    Réponses: 3
    Dernier message: 18/01/2004, 16h27

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