2010-03-16 2 views

Répondre

6

Non, un tel validateur n'existe pas dans l'implémentation JSF de base. Vous devez exécuter le validateur sur le dernier composant du groupe et saisir le autre composant que vous souhaitez valider en utilisant UIViewRoot#findComponent(). Par exemple.

public void validate(FacesContext context, UIComponent component, Object value) { 
    UIComponent otherComponent = context.getViewRoot().findComponent("otherClientId"); 
    Object otherValue = ((UIInput) otherComponent).getValue(); 
    // ... 
} 

Voir aussi this article pour plus d'informations de fond et des exemples concrets.

D'autre part, si vous êtes déjà sur JSF2, vous pouvez également utiliser la validation ajaxical:

<h:form> 
    <f:event type="postValidate" listener="#{bean.validate}" /> 
    ... 
</h:form> 

..where méthode #{bean.validate} ressembler à ceci:

public void validate(ComponentSystemEvent e) { 
    UIComponent form = e.getComponent(); 
    UIComponent oneComponent = form.findComponent("oneClientId"); 
    UIComponent otherComponent = form.findComponent("otherClientId"); 
    // ... 
} 

Voir également this article pour plus d'exemples de validation JSF2.

Questions connexes