JSF 2.0: Comment remplacer la base de convertisseurs avec les personnalisées?
Je suis en train de remplacer moteur de rendu pour h:selectBooleanCheckbox
(pour les raisons expliquées ici):
Cependant, je trouve qu'il est impossible d'enregistrer mon moteur de rendu. J'ai essayé de le déclarer dans mon faces-config.xml
:
<render-kit>
<renderer>
<component-family>javax.faces.SelectBoolean</component-family>
<renderer-type>javax.faces.Checkbox</renderer-type>
<renderer-class>com.myapp.CustomCheckboxRenderer</renderer-class>
</renderer>
</render-kit>
Les valeurs que j'ai attrapé à partir de:
- composant-famille:
javax.faces.component.html.HtmlSelectBooleanCheckbox
- convertisseur-type:
javax.faces.component.html.SelectBooleanCheckboxTag
Mais ça ne fonctionne pas.
J'ai aussi essayé avec beaucoup de détails déclarant la RenderKit
:
<description>Custom renderers</description>
<render-kit-id>???</render-kit-id>
<render-kit-class>com.sun.faces.renderkit.RenderKitImpl</render-kit-class>
Mais comme vous pouvez le voir, je ne sais pas vraiment par où saisir la valeur pour render-kit-id
ou si le render-kit-class
est correct de toute façon.
À l'intérieur de Mojarra, il n'y a fichier jsf-ri-runtime.xml
mais il ne doit pas déclarer les moteurs de rendu. Il ne déclare qu'une RenderKitFactory
, en vertu de laquelle je n'ai pas directement trouver quelque chose d'intéressant.
Pointeurs?
OriginalL'auteur Tuukka Mustonen | 2011-01-05
Vous devez vous connecter pour publier un commentaire.
Votre initiale
<renderer>
déclaration a l'air bien, donc je l'ai essayé ici.Il fonctionne très bien. Tous les faire imprimer sur la sortie standard stdout. Votre problème est ailleurs. J'ai été en utilisant Mojarra 2.0.3 sur Tomcat 7.0.5.
selectBooleanCheckbox
? Comment un non-objet boolean représentent une valeur de type boolean etat?Hmm, vous avez raison, il ne fonctionne pas. Je n'ai pas fait de test avec le encodeXXX méthodes d'avant, j'ai juste mis un point d'arrêt à mon personnalisée du moteur de rendu
getConvertedValue
méthode, qui n'est pas appelée. La raison en est peut-être l'objet d'un tout autre question, cependant. De toute façon, savez-vous si il y a une liste de composants JSF, leur rendre-types et des familles, quelque part, ou devons-nous toujours accéder à leurs classes et de recherche pour ces variables?C'est une combinaison de tableau 8.1 en JSF 2.0 spécification et la
COMPONENT_FAMILY
constante de la valeur du champ en JSF 2.0 de l'API doc. Finalement, le chapitre 4.1.x de JSF 2.0 spécification peut être consulté pour les deux.Excellent. Je vous remercie une fois de plus! (même si je crains que ce ne sera pas la dernière fois... 🙂
OriginalL'auteur BalusC
- Je ajouter des convertisseurs à mon
faces-config.xml
comme suit:Vous n'avez pas à (et ne devrait pas) déclarer un nouveau rendu kit de classe dans ce scénario.
render-kit-id
lors de la substitution par défaut? Semble fonctionner sans elle... ne HTML_BASIC reportez-vous à "par défaut" RenderKit?Mustonen - render-kit-id est l'option par défaut RenderKit (il y a un exemple dans les specs). HTML_BASIC est en effet l'id par défaut.
Ok, merci pour les précisions!
OriginalL'auteur McDowell