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: p> 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. P> Merci. P> P> P> P> P> P> P> P> P> P> P> P> P >
5 Réponses :
Vous pouvez utiliser un Converter A > ( Tutoriel ). P>
Et inscrivez-le avec convertisseur-for-class code> pour
java.lang.string code> de sorte que vous n'avez pas besoin de le définir sur chaque composant
uiinput code> .
@MartLark - C'est un élément utilisé dans faces-config.xml code>. 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. I> 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. i> Voir la spécification JSF pour plus.
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. P>
J'ai répondu à une question similaire ici p>
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 CODE> ATTRIBUÉ SI VRAI. P>
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; } }
Ou, si vous n'avez pas envie de le coder vous-même, voir showcase.omnifaces.org/converters/trimconverter < / a>
Personnellement, je sens que le commentaire ci-dessus devrait être la réponse acceptée
Une idée:
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.