2013-04-10 5 views
5

Ich bin mit MyFaces 2.1.9 und PrimeFaces 3.5. Ich habe einen benutzerdefinierten Renderer für <p:inputText> implementiert. Dies funktioniert zu Hause mit Tomcat. Aber das funktioniert bei der Arbeit mit Websphere nicht. Ich habe Haltepunkte in der benutzerdefinierten Renderer-Klasse platziert, aber sie werden nie getroffen. Ich sehe auch nichts in meinen Logs. Wenn ich jedoch den gleichen benutzerdefinierten Renderer auf Standard-JSF <h:inputText> registriere, funktioniert es einwandfrei.Benutzerdefinierte Renderer für PrimeFaces Komponente arbeitet in Tomcat in Ordnung, aber nicht in Websphere

Ich habe es registriert, wie in faces-config.xml folgt:

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

Wie kann ich die Registrierung des benutzerdefinierten Renderer beheben?

+1

Beginnen Sie mit einem Haltepunkt auf 'RenderKit # addRenderer()'. – BalusC

+0

Danke! Jetzt weiß ich, dass mein Renderer zuerst bearbeitet wird, dann kommt der reguläre Renderer in addREnderer und überschreibt meinen! Wie kann ich das lösen? – KTrum

+0

Okay, das erklärt es tatsächlich. Wo ist deine 'faces-config.xml'? In einer benutzerdefinierten JAR-Datei in '/ WEB-INF/lib' oder direkt in webapp'/WEB-INF'? Wenn in JAR, dann ist der Ladeauftrag nicht definiert. Wenn es vor dem PrimeFaces geladen ist, dann bekommen Sie dieses Problem. – BalusC

Antwort

7

Individuelle Renderer, die Renderer von 3rd-Party-Komponentenbibliotheken außer Kraft setzen muss, muss in Webapp eigenen faces-config.xml, nicht in einem faces-config.xml registriert werden, die auch in einem anderen JAR in /WEB-INF/lib verpackt. Die Ladereihenfolge von JAR-Dateien ist nicht spezifiziert, so kann es vorkommen, dass die benutzerdefinierten Renderer geladen werden und registriert vor die eine der 3rd-Party-Komponenten-Bibliothek, die Sie außer Kraft setzen möchten, genau wie, wie Sie konfrontiert.

Verwandte Themen