2010-07-02 21 views
2

Dans un fichier jsp, existe-t-il un moyen de rechercher un composant sur cette page et de vérifier si ce composant est valide. Dites que j'ai un champ de saisie, et un panelGroup avec html complexe qui devrait être montré si la validation a échoué dans le champ de saisie. Ce que je cherche vraiment, c'est une expression EL pour l'attribut rendu sur le panelGroup.Comment vérifier si un UIComponent JSF est valide dans un fichier jsp?

J'ai essayé de jouer avec une fonction de validation personnalisée, et en réglant ici la valeur de la propriété panelGroups sur true. Mais il a ensuite échoué sur les champs obligatoires car la fonction de validation personnalisée n'a jamais été exécutée lorsque ce champ était vide.

En ce moment j'évite complètement la validation régulière et utilise un code plutôt moche pour valider tout sur soumettre. Puis stocker le résultat dans de nombreux exemples de booléens, qui sont utilisés pour le rendu dans les panelGroups.

Toute aide est très appréciée

Répondre

4

Vous pouvez utiliser UIInput#isValid().

Voici un exemple de coup d'envoi:

<h:form> 
    <h:inputText binding="#{input}" value="#{bean.input}" required="true" /> 
    <h:commandButton value="submit" action="#{bean.submit}" /> 
    <h:messages /> 
</h:form> 
<h:outputText value="input is not valid!" rendered="#{!input.valid}" /> 

Notez que le nom que vous utilisez dans binding attribut ne doit pas entrer en conflit avec les noms de toute demande scope attributs/haricots.

+0

Merci beaucoup, c'est exactement ce que je cherchais – zoma

+0

De rien. Soit dit en passant, savez-vous que «» fait moins ou plus la même chose? – BalusC

+0

oui j'ai regardé le message, cependant ne pourrait pas trouver une bonne manière de l'employer quand le message d'erreur est plus complexe que juste une chaîne. La plupart des messages d'erreur qui m'ont été spécifiés ont des listes html en eux ou d'autres html .. – zoma