2010-06-16 2 views
0

Dans l'une de nos fonctionnalités, nous avons des champs de date pour la modification en ligne dans lesquels nous avons activé la saisie manuelle. Si dans le composant riche: calendrier, nous entrons manuellement une date incorrecte ou des données indésirables, il n'appellera même pas la méthode d'action. Selon notre exigence, nous devons afficher un message d'erreur pour la validation de la date pour ce type de champs. Est-il possible de suivre que la date entrée dans le champ de calendrier est incorrecte avec ce composant. Code pour la référence:Validation d'une entrée de date incorrecte dans les faces riches

<rich:calendar id="actualOpeningDtCal" rendered="#{!empty aProgram.id}" 
    value="#{aProgram.actualOpeningDate}" placeholder="dd-mmm-yyyy" 
    inputSize="20" enableManualInput="true" datePattern="dd-MMM-yyyy" 
    buttonIcon="../content/images/calendar.png" showWeeksBar="false" 
    showFooter="false"> 
    <a4j:support event="oninputblur" reRender="aList" ajaxSingle="false" 
     action="#{aController.inlineEdit}"> 
     <f:setPropertyActionListener value="#{aProgram}" 
      target="#{aController.inLineEditaBean}" /> 
    </a4j:support>  
    <a4j:support event="oncollapse" reRender="aList" ajaxSingle="false" 
     action="#{aController.inlineEdit}"> 
     <f:setPropertyActionListener value="#{aProgram}" 
      target="#{aController.inLineEditaBean}" /> 
    </a4j:support> 
</rich:calendar> 

Répondre

1

Si la validation échoue, alors il y a des messages d'erreur. Peut-être ne les montrez-vous pas. Utilisez <rich:messages> au lieu de <h:messages> pour les rendre sur la réponse ajax.

Une mauvaise pratique, mais pourrait fonctionner, serait d'utiliser immediate="true" (validation bypasses), puis effectuer la validation dans la méthode d'action.