Estoy tratando de anular procesador de h:selectBooleanCheckbox
(por las razones que se explican here):JSF 2.0: ¿Cómo sobrescribir los renderizadores base con los personalizados?
Sin embargo, me resulta imposible colocar mi procesador. He tratado de declarar que en mi 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>
Los valores Agarré a partir de:
- componente familiar:
javax.faces.component.html.HtmlSelectBooleanCheckbox
- procesador de tipo:
javax.faces.component.html.SelectBooleanCheckboxTag
Pero doesn no funciona
también probé informa extensamente declarando la RenderKit
:
<description>Custom renderers</description>
<render-kit-id>???</render-kit-id>
<render-kit-class>com.sun.faces.renderkit.RenderKitImpl</render-kit-class>
Pero como se puede ver, no se sabe muy bien por dónde agarrar valor para render-kit-id
o si el render-kit-class
es correcto de todos modos.
Dentro del paquete Mojarra existe el archivo jsf-ri-runtime.xml
pero no declara los procesadores. Solo declara RenderKitFactory
, por lo que no encuentro directamente nada de interés.
Punteros?
Sin relación con el problema, ¿por qué alguna vez usaría booleanos como valor de un 'selectBooleanCheckbox'? ¿Cómo puede un objeto no booleano representar un estado booleano? – BalusC
Hmm, tienes razón, funciona. No probé con los métodos encodeXXX antes, simplemente configuré un punto de interrupción en el método 'getConvertedValue' de mi procesador personalizado, que no se llama. Sin embargo, el motivo puede estar sujeto a una pregunta completamente diferente. De todos modos, ¿sabes si hay una lista de componentes JSF, sus tipos de representación y familias en algún lugar, o tenemos que navegar siempre a sus clases y buscar estas variables? –
Es una combinación de la tabla 8.1 en la especificación JSF 2.0 y la ['COMPONENT_FAMILY'] (http://download.oracle.com/javaee/5/api/constant-values.html#javax.faces.component.UISelectBoolean.COMPONENT_FAMILY) valor de campo constante en JSF 2.0 API doc. Finalmente, se puede consultar el capítulo 4.1.x de la especificación JSF 2.0 para ambos. – BalusC