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 :

[PrimeFaces] Formatter une valeur d'un input text avec Java dans un composant perso


Sujet :

JSF Java

  1. #1
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut [PrimeFaces] Formatter une valeur d'un input text avec Java dans un composant perso
    Bonjour,

    J'ai construit un composite perso et je souhaiterai formater une valeur d'un input text suite à la validation.

    La validation fonctionne, et suite à celle ci, je voudrai insérer des espaces entre des série de chiffres. une idée sur comment formatter ma valeur?
    j'ai pensé effectué le formattage dans le validator et l'affectué dans le champ en le récupérant mais ceci ne fonctionne pas.

    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
    30
    31
    32
    33
     
    <!-- INTERFACE du composant de gestion des numéros SIREN -->
        <composite:interface componentType="sirenComposant">
            <composite:attribute name="libelleLabel" type="java.lang.String"
                required="true" />
            <composite:attribute name="idComposant" type="java.lang.String"
                required="true" />
            <composite:attribute name="value" required="true" />
     
            <composite:attribute name="disabled" type="java.lang.Boolean"
                required="false" default="false" />
            <composite:attribute name="styleLabel" type="java.lang.String"
                required="false" />
            <composite:attribute name="styleZoneSaisie" type="java.lang.String"
                required="false" />
        </composite:interface>
     
     
        <!-- IMPLEMENTATION du composant permettant de gérer l'affichage et la validation du numéro SIREN -->
        <composite:implementation>
            <p:outputLabel value="#{cc.attrs.libelleLabel}"
                for="#{cc.attrs.idComposant}" styleClass="#{cc.attrs.styleLabel}" />
            <p:inputText id="#{cc.attrs.idComposant}"
                label="#{cc.attrs.libelleLabel}" value="#{cc.attrs.value}"
                styleClass="#{cc.attrs.styleZoneSaisie}" size="11" maxlength="11"
                disabled="#{cc.attrs.disabled}">
                <f:validator validatorId="sirenValidator"
                    for="#{cc.attrs.idComposant}"/>
                <p:ajax event="change" update="#{cc.attrs.idComposant}" />
            </p:inputText>
            <pe:keyFilter for="#{cc.attrs.idComposant}" mask="num"/>  
        </composite:implementation>
    </ui:component>
    le validator
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
            String sirenSaisi = (String) value;
     
            if (StringUtils.isNotBlank(sirenSaisi)) {
                // -- 1. Le numéro SIREN doit être composé de 8 chiffres + 1 chiffre de contrôle
     
                // Suppression des espaces pour vérifier la chaîne saisie
                String sirenSaisiSansEspace = StringUtils.deleteWhitespace(sirenSaisi);
     
                if (sirenSaisiSansEspace.chars().count() != 9) {
                    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
                            "SIREN - Longueur invalide : Le numéro SIREN doit être composé de 9 chiffres",
                            "Le numéro SIREN doit être composé de 9 chiffres"));
                } else if (!StringUtils.isNumeric(sirenSaisiSansEspace)) {
                    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
                            "SIREN - Format invalide : Le numéro SIREN doit être composé de 9 chiffres",
                            "Le numéro SIREN doit être composé uniquement de chiffres"));
                }
     
                // -- 2. Vérification de l'exactitude du N°SIREN
                if (!estNumeroSirenValide(sirenSaisiSansEspace)) {
                    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "SIREN - Numéro saisi inexact : corrigez votre saisie",
                            "Le numéro SIREN doit être composé de 9 chiffres qui répondent à la règle de contrôle d'un SIREN"));
                }
     
                //---------------essai et test
                InputText inputText = (InputText) FacesContext.getCurrentInstance().getViewRoot().findComponent(component.getClientId());
                value = sirenSaisi.substring(0, 3) + StringUtils.SPACE + sirenSaisi.substring(3, 6) + StringUtils.SPACE
                        + sirenSaisi.substring(6, sirenSaisi.length());
                inputText.setValue(value);
                inputText.setSubmittedValue(value);
                inputText.setLocalValueSet(true);
     
                RequestContext.getCurrentInstance().execute(component.getClientId() + ".value(" + value + ");");
                RequestContext.getCurrentInstance().update(component.getClientId());
               //------------------------------
            }
        }
    merci pour votre aide

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    C'est le travaille d'un converter, pas d'un validator...

  3. #3
    Membre habitué
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Points : 168
    Points
    168
    Par défaut
    effectivement, c'était si simple....

    merci à toi OButterlin

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

Discussions similaires

  1. Extraire une valeur d'un champ text avec condition
    Par yoyo-tns dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/12/2012, 00h05
  2. Modifier la valeur d'un Static Text avec java
    Par rolls dans le forum iReport
    Réponses: 1
    Dernier message: 24/08/2012, 11h53
  3. comment afficher une valeur d'un INPUT TEXT?
    Par john7911 dans le forum Langages serveur
    Réponses: 3
    Dernier message: 01/12/2011, 18h07
  4. Réponses: 9
    Dernier message: 29/06/2010, 17h44
  5. Réponses: 1
    Dernier message: 06/10/2006, 13h50

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