7
votes

JSF Couper des espaces blancs

Bonjour,

J'ai un champ de saisie dans lequel je veux couper les espaces de tête de tête / traînant. Nous utilisons JSF et liant le champ d'entrée à un haricot de support dans le JSP à l'aide de: xxx

ma question est que la validation peut-elle être effectuée dans le JSP? Je sais que nous pouvons également faire cela à l'aide de la fonction de garniture () Java dans le gestionnaire, mais vous vous demandez simplement s'il existe un moyen plus élégant d'y parvenir à JSF.

Merci.


1 commentaires

Je résolvai cela en utilisant simplement la fonction de garniture () dans le gestionnaire avant de faire n'importe quel traitement. Merci pour l'idée alternative bien que McDowell.


5 Réponses :


6
votes

Vous pouvez utiliser un Converter ( Tutoriel ).


2 commentaires

Et inscrivez-le avec convertisseur-for-class pour java.lang.string de sorte que vous n'avez pas besoin de le définir sur chaque composant uiinput .


@MartLark - C'est un élément utilisé dans faces-config.xml . De SPEC: / FACES-CONFIG / CONVERTER - Créez ou remplacez une paire de classes de la classe / convertisseur de convertisseur ou de la classe de convertisseur de cible avec l'instance d'application de cette application Web. aussi: le " L'élément convertisseur-for-classe représente le nom de classe entièrement qualifié pour lequel une classe de convertisseur sera enregistrée. Voir la spécification JSF pour plus.



1
votes

Je résolvai cela en utilisant simplement la fonction de garniture () dans le gestionnaire avant de faire un traitement. Cela semblait juste comme la façon la plus directe de le faire.


0 commentaires

2
votes

J'ai répondu à une question similaire ici

Fondamentalement, vous pouvez créer votre propre composant qui est une copie de l'INPUTTEXT qui génère automatiquement, ou vous pouvez étendre automatiquement l'attribut INPUTTEXT et Ajoutez TIX ATTRIBUÉ SI VRAI.


0 commentaires

5
votes

Comme suggéré par McDowell et Balusc, vous pouvez créer un convertisseur et l'enregistrer avec @FacesConvert Annotation pour la classe de cordes. Et puis dans la méthode GetasObject, vérifiez le type Uicomponent et appliquez la coupe uniquement pour les composants HTMLINUTPUTTEXT.

@FacesConverter(forClass = String.class)
public class StringTrimConverter implements Serializable, javax.faces.convert.Converter {

    @Override
    public Object getAsObject(FacesContext context, UIComponent cmp, String value) {

        if (value != null && cmp instanceof HtmlInputText) {
            // trim the entered value in a HtmlInputText before doing validation/updating the model
            return value.trim();
        }

        return value;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent cmp, Object value) {

        if (value != null) {
            // return the value as is for presentation
            return value.toString();
        }
        return null;
    }

}



0
votes

Une idée: xxx


0 commentaires