2013-04-10 5 views
5

MyFaces 2.1.9 및 PrimeFaces 3.5를 사용하고 있습니다. <p:inputText>에 대한 사용자 지정 렌더러를 구현했습니다. 이것은 Tomcat에서 집에서 잘 작동합니다. 그러나 이것은 Websphere와 함께 작동하지 않습니다. 커스텀 렌더러 클래스에 중단 점을 배치했지만 결코 충돌하지 않습니다. 나는 내 기록에도 아무것도 볼 수 없다. 그러나 표준 JSF <h:inputText>에 매우 동일한 사용자 정의 렌더러를 등록하면 올바르게 작동합니다.PrimeFaces 구성 요소의 사용자 정의 렌더러는 Tomcat에서는 제대로 작동하지만 Websphere에서는 작동하지 않습니다.

faces-config.xml에서 다음과 같이 내가 등록한 :

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

어떻게 사용자 정의 렌더러의 등록 문제를 해결할 수 있습니다?

+1

'RenderKit # addRenderer()'에 중단 점으로 시작하십시오. – BalusC

+0

감사! 이제 렌더러가 먼저 처리 된 다음 일반 렌더러가 addREnderer에서 처리되고 내 것을 덮어 쓰는 것을 알고 있습니다! 이 문제를 어떻게 해결할 수 있습니까? – KTrum

+0

좋아, 그게 실제로 설명해. 당신의'faces-config.xml'은 어디에 있습니까? '/ WEB-INF/lib'에있는 커스텀 모듈 JAR 파일이나 webapp의'/ WEB-INF'에 직접 있습니까? JAR의 경우,로드 순서는 미정 도리입니다. PrimeFaces 이전에로드 된 경우이 문제가 발생합니다. – BalusC

답변

7

타사 구성 요소 라이브러리의 렌더러를 재정의해야하는 맞춤형 렌더러는 faces-config.xml에 등록해야하며 faces-config.xml이 아닌 /WEB-INF/lib의 다른 JAR에도 포함되어야합니다. JAR 파일의로드 순서가 지정되지 않았으므로 사용자 정의 렌더러가 앞에로드되고 앞에 서면 타사 구성 요소 라이브러리 중 하나가 사용자가 직면 한 것처럼로드 할 수 있습니다.