2011-03-31 3 views
0

Est-ce que le immediate="true" du commandLink ne devrait pas sauter la validation? Je reçois toujours le message "mot de passe est requis" lorsque je clique sur ce lien, des idées?JSF immédiat = true pour ignorer la validation

<h:inputSecret id="j_password" autocomplete="off" value="#{authenticationBean.password}" required="true" requiredMessage="Password is Required" /> 

<p:commandLink action="#{authentication.forgotPassword}" ajax="false"> 
    <h:outputText value="#{bundle['login.forgotpassword.TEXT']}" immediate="true"/> 
</p:commandLink> 

Répondre

1

Vous avez mis sur le <h:outputText> au lieu du <p:commandLink>. L'attribut immediate n'a aucun effet sur les composants UIOutput (et entraînerait également une erreur de validation XML sur certains environnements). Il n'a d'effet que sur les composants UIInput et UICommand. Déplacez l'attribut vers le composant <p:commandLink>.

1

L'attribut immédiat n'ignore aucune validation. Il déplace le composant et tous ses événements, validateurs, etc. vers la phase APPLY_REQUEST. Ainsi, vous avez l'opportunité de traiter les entrées et les commandes avant toutes les autres entrées et commandes non-immédiates.

http://www.javacodegeeks.com/2012/01/jsf-and-immediate-attribute-command.html

Si vous voulez sauter la validation avec immédiate, vous devrez prendre une action appropriée en cas de l'action immédiate afin d'éviter un traitement ultérieur des intrants et les leurs événements, comme un FacesContext Redirect.

Questions connexes