覆盖 PrimeFaces 的 MediaRenderer

Override PrimeFaces' MediaRenderer

我试图覆盖 Primeface 的 7.0 MediaRenderer,我使用 Primeface 的 8.0 方法创建了自己的 MyMediaRenderer:

public class MyMediaRenderer extends org.primefaces.component.media.MediaRenderer {
   @Override
    public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
    ...
       if (value instanceof StreamedContent && PDFPlayer.MIME_TYPE.equals(player.getType())) {
       ...
       }
    ...
   }
   
}

我也加在src/main/webapp/WEB-INF/faces-config的末尾。xml :

    <render-kit>
        <renderer>
            <component-family>org.primefaces.component.media</component-family>
            <renderer-type>org.primefaces.component.media.MediaRenderer</renderer-type>
            <renderer-class>redacted.MyMediaRenderer</renderer-class>
        </renderer>
    </render-kit>

</faces-config>

我在这里错过了什么?该方法仍然从 org.primefaces.component.media.MediaRenderer

调用

您的 renderkit 不正确,请使用以下内容:

<renderer>
       <component-family>org.primefaces.component</component-family>
       <renderer-type>org.primefaces.component.MediaRenderer</renderer-type>
       <renderer-class>redacted.MyMediaRenderer</renderer-class>
</renderer>