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 :

<f:converter> Parent not an instance of ValueHolder: javax.faces.component.html.HtmlCommandButton


Sujet :

JSF Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 715
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 715
    Par défaut <f:converter> Parent not an instance of ValueHolder: javax.faces.component.html.HtmlCommandButton
    Bonjour,

    J'ai l'erreur suivante dans un converter personnalisé, mais pourquoi ?
    Mon but est de mettre en majuscule une traduction issu d'un fichier propertie, mais uniquement dans certains cas, et donc d'éviter deux lignes de traductions.

    <f:converter> Parent not an instance of ValueHolder: javax.faces.component.html.HtmlCommandButton@1

    Le .xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <ui:composition template="/layout/template.xhtml"
                    xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:h="http://java.sun.com/jsf/html"
                    xmlns:f="http://java.sun.com/jsf/core"
                    xmlns:ui="http://java.sun.com/jsf/facelets"
                    xmlns:a4j="http://richfaces.org/a4j"
                    xmlns:rich="http://richfaces.org/rich">
     
     
    <h:commandButton action="#{reportBean.reportAction}"
                                         value="#{msg['createreport']}">
                                         <f:converter converterId="upperCaseFirstLetterConverter" />
                        </h:commandButton>
    Le code java
    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
     
    @FacesConverter("upperCaseFirstLetterConverter")
    public class UpperCaseFirstLetterConverter implements Converter {
     
        @Override
        public Object getAsObject(FacesContext context, UIComponent component, String value) {
            return value.toUpperCase();
        }
     
     
        @Override
        public String getAsString(FacesContext context, UIComponent component, Object modelValue) {
            if (modelValue == null || ((String) modelValue).isEmpty()) {
                return null;
            }
     
            String string = (String) modelValue;
            System.out.println("converter:"+string);
            System.out.println("converterb:"+new StringBuilder()
            .append(Character.toTitleCase(string.charAt(0)))
            .append(string.substring(1)).toString());
            return new StringBuilder()
                .append(Character.toTitleCase(string.charAt(0)))
                .append(string.substring(1))
                .toString();
        }
    }

    Ou est mon erreur ?
    Merci d'avance
    Phil

  2. #2
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut
    Les Converters ne peuvent pas etre attachés aux composant de commande tel que h:commandLink et h:commandButton.
    Tu dois creer des composants composés ou utiliser une methode dans ton Backing bean pour faire cela.

    essaie plutot ceci voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <h:commandLink action="#{reportBean.reportAction}">
                           <h:outputText value="#{result.status}">
            <f:converter converterId="upperCaseFirstLetterConverter" />
        </h:outputText>
      </h:commandLink>
    Eric

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/12/2014, 15h26
  2. Pilotage d'instance IE à partir d'une page HTML
    Par Echo_94 dans le forum VB.NET
    Réponses: 0
    Dernier message: 07/09/2010, 09h22
  3. SelectOneMenu Converter: Valeur is not valid
    Par Lourpiop dans le forum JSF
    Réponses: 4
    Dernier message: 27/05/2010, 17h39
  4. Réponses: 2
    Dernier message: 31/01/2009, 13h29
  5. Réponses: 2
    Dernier message: 15/12/2008, 14h50

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