如何覆盖primefaces组件类

时间:2015-08-19 18:04:59

标签: jsf jsf-2 primefaces custom-component faces-config

我想覆盖一个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");
    }

}

应用程序是重新构建的,但它使用的是旧类。为什么?我还应该做什么?

1 个答案:

答案 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>

另见: