我想覆盖一个primefaces组件类。所以,我在WAR项目的faces-config.xml中注册了组件类。
<component>
<component-type>org.primefaces.component.dnd.Droppable</component-type>
<component-class>com.******.****.****.component.CustomDroppable</component-class>
</component>
这是我的新测试类:
public class CustomDroppable extends Droppable{
@Override
public void queueEvent(FacesEvent event) {
System.out.print("fffffffffffff");
}
}
应用程序是重新构建的,但它使用的是旧类。为什么?我还应该做什么?
答案 0 :(得分:1)
在<component-type>
中,您应指定组件类型,而不是组件类。组件类型不一定类似于Java FQN,它可以是您想要的任何类型的字符串。通常,您可以在要替换的组件类的API文档中找到正确的组件类型。
如果是org.primefaces.component.dnd.Droppable
类,则将其定义为常量字段COMPONENT_TYPE
,其值为org.primefaces.component.Droppable
(因此,没有dnd
&#34;子包&# 34;与组件类相比)。
相应修复:
<component>
<component-type>org.primefaces.component.Droppable</component-type>
<component-class>...</component-class>
</component>