我正在使用MyFaces 2.1.9和PrimeFaces 3.5。我为<p:inputText>
实现了自定义渲染器。这在Tomcat的家中运行良好。但这与使用Websphere不起作用。我在自定义渲染器类中放置了断点,但它们从未被击中。我的日志中也没有看到任何内容。但是,当我在标准JSF <h:inputText>
上注册完全相同的自定义渲染器时,它可以正常工作。
我在faces-config.xml
注册了以下内容:
<render-kit>
<renderer>
<component-family>org.primefaces.component</component-family>
<renderer-type>org.primefaces.component.InputTextRenderer</renderer-type>
<renderer-class>xxx.xxx.xxx.MyInputRenderer</renderer-class>
</renderer>
</render-kit>
如何解决自定义渲染器的注册问题?
答案 0 :(得分:8)
需要覆盖第三方组件库渲染器的自定义渲染器需要在webapp自己的faces-config.xml
中注册,而不是在faces-config.xml
中注册,而/WEB-INF/lib
也包含在{{1}}中的另一个JAR中。未指定JAR文件的加载顺序,因此可能会发生自定义渲染器已加载并在之前注册您想要覆盖的第三方组件库之一,就像您面对的那样