ADF : contrôle de validation avec les expressions régulières au sein des ADF Faces

Le but de cet article est de présenter une solution simple et rapide apportée par ADF pour faciliter la validation correcte de données.
Nous prendrons pour exemple, la saisie d’une adresse IPv4.

La solution ADF : le tag <af:validateRegExp>

Le framework ADF fournit le tag <af:validateRegExp> permettant l’utilisation des expressions régulières au sein d’un champ de saisie.
Il suffit de renseigner la propriété pattern avec le pattern adéquat, dans notre cas celui d’une adresse IPv4, et éventuellement un message d’erreur si la saisie n’est pas conforme.

  <af:inputText
      value="#{bindings.SerPublicip.inputValue}"
      label="#{bindings.SerPublicip.label}"
      required="#{bindings.SerPublicip.hints.mandatory}"
      columns="#{bindings.SerPublicip.hints.displayWidth}"
      maximumLength="#{bindings.SerPublicip.hints.precision}"
      shortDesc="#{bindings.SerPublicip.hints.tooltip}"
      id="inputText5" autoSubmit="true">
          <af:validateRegExp
              pattern="([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
                       (\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}"
              messageDetailNoMatch="Vous avez saisi une adresse IPv4 non conforme."/>
  </af:inputText >

Voici ci-dessous le résultat visuel pour une tentative de saisie non conforme :

Conclusion

Il existe une autre possibilité consistant à positionner ce même contrôle plus près de la couche de persistance au niveau de l’entity.
Ce dernier offre l’avantage de la réutilisation (tous les faces construits à partir de cet attribut hériteront du contrôle défini dans l’entity) et de la sécurisation (pas d’oubli possible d’ajout du contrôle au niveau de l’ADF Faces).
Nous l’évoquerons lors d’un prochain article.

Bibliographie :

Shay Shmeltzer : regular_expression_validation