2010-10-13 3 views
0

Je rencontre un problème particulier lorsque j'essaie d'invoquer la valeur h: inputText label field à la validation. Cela ne fonctionne que lorsque je transmets une valeur statique au champ d'étiquette. Le temps que je lui passe une valeur dynamique, il ne parvient pas à rendre l'étiquette quand une validation échoue pour ce champ.h: inputText ne renvoie pas l'étiquette à la validation

<h:inputText id="fullNameField" value="#{newUserFormBean.fullName}" 
     **label="${nlsSupport.label_fullName}"** required="true" size="32" styleClass="required">       
       <f:validateLength minimum="3" maximum="64"/> 
</h:inputText> 

Si la validation échoue pour la longueur minimale, le message d'erreur est affiché comme:

pas d'étiquette rendu ici: doit être au minimum 3 caractères

Mais quand je coder en dur l'étiquette au lieu pour lui transmettre une valeur dynamique, il affiche un message de validation valide, avec le nom de l'étiquette imprimé à l'écran.

<h:inputText id="fullNameField" value="#{newUserFormBean.fullName}" 
     **label="Full Name"** required="true" size="32" styleClass="required">  
     <f:validateLength minimum="3" maximum="64"/> 
    </h:inputText> 

Maintenant, si la validation échoue pour la longueur minimale, le message d'erreur est affiché comme:

Nom complet: doit être au minimum 3 caractères

J'ai également examiné la documentation JSF , et il lit que l'étiquette accepte les expressions de langage d'expression. Alors pourquoi la valeur dynamique n'est-elle pas restituée après la validation de l'échec?

De plus, j'ai besoin de passer l'étiquette de manière dynamique (à partir de l'ensemble de ressources), de manière à ajouter la fonctionnalité de langue nationale pour différentes langues. C'est la raison qui me force à passer une valeur dynamique à l'attribut label au lieu d'un champ statique.

Merci.

Répondre

1

Vous avez la solution.

Je chargeais le faisceau de ressources en xhtml utilisant

<f:loadBundle basename="com.myproject.i18n.nls" var="nlsSupport" />,

qui causerait un problème de chargement du champ de regroupement de ressources sur la validation Ajax. Maintenant, je l'ai modifié pour être implémenter un support Ajax

<a4j:loadBundle basename="com.myproject.i18n.nls" var="nlsSupport" />

et il fonctionne maintenant.

Questions connexes