我使用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>
如何解决自定义渲染器的注册问题?
需要覆盖第三方组件库的渲染器的自定义渲染器需要在webapp自己的faces-config.xml
中注册,而不是在/WEB-INF/lib
中的另一个JAR中打包的faces-config.xml
中。JAR文件的加载顺序未指定,因此可能会发生自定义呈现器在您想要覆盖的第三方组件库之前加载和注册的情况,就像您所面临的那样。