JSF 2.0 PrimeFaces渲染器覆盖

man*_*ron 1 custom-component primefaces jsf-2

我试图扩展一些primefaces组件渲染器类进行相同的更改我在faces配置中注册新的渲染器

<render-kit>
        <renderer>
            <component-family>org.primefaces.component</component-family>
            <renderer-type>org.primefaces.component.CommanButton</renderer-type>
            <renderer-class>ExtendedTags.myCommandButton</renderer-class>
        </renderer>
    </render-kit>
Run Code Online (Sandbox Code Playgroud)

我可以看到它调用渲染器的构造函数,但没有调用其他重写的函数encodeBegin encodeEnd等.我错过了什么?primefaces组件是否有任何特殊的附加功能?这是我的渲染类

public class myCommandButton extends CommandButtonRenderer{

    public myCommandButton() {
    System.out.println("button constructor");
    }



    @Override
    public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
        System.out.println("button encode begin");
        super.encodeBegin(context, component);
        ResponseWriter writer = context.getResponseWriter();
        writer.write("*");

    }



}
Run Code Online (Sandbox Code Playgroud)

Cag*_*ici 11

        <renderer>
            <component-family>org.primefaces.component</component-family>
            <renderer-type>org.primefaces.component.CommandButtonRenderer</renderer-type>
            <renderer-class>ExtendedTags.myCommandButton</renderer-class>
         </renderer>
Run Code Online (Sandbox Code Playgroud)