Java Server Faces

Extrait du cours Java Server Faces

69.12.6. L’écriture de tags pour un convertisseur ou un validateur de données
L’écriture d’un tag personnalisé facilite l’utilisation d’un convertisseur ou d’un validateur et permet de lui fournir des paramètres.
Il faut définir une classe nommée handler qui va contenir les traitements du tag. Cette classe doit hériter d’une sous-classe dédiée selon le type d’élément que va représenter le tag :
ConverterTag : si le tag concerne un convertisseur
ValidatorTag : si le tag concerne un validateur
UIComponentTag et UIComponentBodyTag : si le tag concerne un composant
Le handler est un bean dont les propriétés doivent correspondre à chaque attribut défini dans le tag.
Pour pouvoir utiliser un tag personnalisé, il faut définir un fichier .tld
Ce fichier au format XML défini dans les spécifications des JSP permet de fournir des informations sur la bibliothèque de tags personnalisés notamment la version des spécifications utilisées et des informations sur chaque tag.
Enfin, il est nécessaire de déclarer l’utilisation de la bibliothèque de tags personnalisés dans la JSP.
69.12.6.1. L’écriture d’un tag personnalisé pour un convertisseur
Il faut définir un handler pour le tag qui est un bean héritant de la classe ConverterTag.
Il est important dans le constructeur du handler de faire un appel à la méthode setConverterId() en lui passant un id défini dans le fichier de configuration de l’application JSF.
Il faut redéfinir la méthode release() dont les traitements vont permettre de réinitialiser les propriétés de la classe. Ceci est important lorsque, pour améliorer les performances, on souhaite placer ces objets dans un pool. La méthode release() est dans ce cas utilisée pour recycler les instances du pool non utilisées.
Il faut ensuite redéfinir la méthode createConverter() qui va permettre la création d’une instance du converter en utilisant les éventuels valeurs des attributs du tag.
La valeur fournie à un attribut d’un tag pour être soit un littéral soit une expression dont le contenu devra être évalué au moment de son utilisation.
 69.12.6.2. L’écriture d’un tag personnalisé pour un validateur
L’écriture d’un tag personnalisé pour un validateur suit les mêmes règles que pour un convertisseur. La grande différence est que la classe handler doit hériter de la classe ValidatorTag. La méthode à appeler dans le constructeur est la méthode setValidatorId() et la méthode à redéfinir pour créer une instance du validateur est la méthode createValidator().
69.13. La sauvegarde et la restauration de l’état
JSF sauvegarde l’état de chaque élément présent dans la vue : les composants, les convertisseurs, les validateurs, … pourvu que ceux-ci mettent en oeuvre un mécanisme adéquat.
Ces états sont stockés dans un champ de type hidden dans la vue pour permettre leur échange entre deux requêtes si l’application le prévoit dans le fichier de configuration.
Ce mécanisme peut prendre deux formes selon que :
la classe qui encapsule l’élément implémente l’interface Serializable
la classe qui encapsule l’élément implémente l’interface StateHolder
Dans le premier cas, c’est le mécanisme standard de la sérialisation qui sera utilisé. Il nécessite donc très peu voire aucun code particulier si les champs de la classe sont tous d’un type qui est sérialisable.
L’implémentation de l’interface StateHolder nécessite la définition des deux méthodes définies dans l’interface (saveState() et restoreState()) et la présence d’un constructeur par défaut. Cette approche peut être intéressante pour obtenir un contrôle très fin de la sauvegarde et de la restauration de l’état.
La méthode saveState(FacesContext) renvoie un objet sérialisable qui va contenir les données de l’état à sauvegarder. La méthode restoreState(FacesContext, Object) effectue l’opération inverse.
Il est aussi nécessaire de définir une propriété nommée transient de type booléen qui précise si l’état doit être sauvegardé ou non.
Si l’élément n’implémente pas l’interface Serializable ou StateHolder alors son état n’est pas sauvegardé entre deux échanges de la vue.
…….

LIRE AUSSI :  Utilisation basique des Beans

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Java Server Faces (1,63 MO) (Cours PDF)

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *