【发布时间】:2023-03-25 21:23:04
【问题描述】:
我正在尝试覆盖 h:selectBooleanCheckbox 的渲染器(原因解释为 here):
但是,我发现无法注册我的渲染器。我已经尝试在我的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>
我从中获取的值:
- 组件系列:
javax.faces.component.html.HtmlSelectBooleanCheckbox - 渲染器类型:
javax.faces.component.html.SelectBooleanCheckboxTag
但它不起作用。
我还尝试详细声明RenderKit:
<description>Custom renderers</description>
<render-kit-id>???</render-kit-id>
<render-kit-class>com.sun.faces.renderkit.RenderKitImpl</render-kit-class>
但正如您所见,我真的不知道从哪里获取 render-kit-id 的价值,或者 render-kit-class 是否正确。
Mojarra 包内有文件jsf-ri-runtime.xml,但它没有声明渲染器。它只声明了一个RenderKitFactory,在它下面我没有直接找到任何感兴趣的东西。
指针?
【问题讨论】: