2017-05-11 16 views
1

xhtml보기에서 사용되는 사용자 정의 구성 요소를 작성했으며 Netbeans8.1 및 glassfish4.1을 사용하여 JSF 2.1에서 속성 값을 가져 와서 인쇄합니다 (helloworld와 같은 코드). UIComponentBase 재정의 패밀리를 확장하고 UIComponentELTag를 override하는 componentType 및 rendererType 메서드를 확장하여 begin 및 custom 구성 요소 태그 클래스를 인코딩하여 사용자 지정 구성 요소를 만들었습니다. test.taglib.xml에 대한 태그 라이브러리를 정의하고 web.xml에 등록했습니다.JSF2 사용자 정의 구성 요소 문제

다음은보기 코드입니다.

<?xml version='1.0' encoding='UTF-8' ?> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml" 
 
     xmlns:h="http://xmlns.jcp.org/jsf/html"> 
 
<h:body> 
 

 
    <h2>JSF Custom Input FacesComponent Example</h2> 
 
    <h:form> 
 
     <ui:composition 
 
        xmlns:custom="http://packt.net/cookbook/components" 
 
         xmlns:ui="http://java.sun.com/jsf/facelets"> 
 
      <custom:testInput helloworld="test component!!"/> 
 
     </ui:composition> 
 
    </h:form> 
 

 
</h:body> 
 
</html>

문제는 - 그것은 단지 HTML 값을 표시하고 사용자 정의 컴포넌트의 속성 값을 표시하지 않습니다.

jsp 뷰 (tld 파일 사용)를 시도한 경우에도 동일한 예제가 작동합니다.

맞춤 구성 요소 태그를 직접 또는 ui : 구성 요소의 하위 요소로 사용해 보았지만 행운은 없었습니다.

사용자 지정 구성 요소에 중단 점을 넣고 디버깅을 시도했지만 컨트롤이 중단 점으로 이동하지 않았습니다.

컨트롤이 중단 점이 아니므로 내 사용자 지정 구성 요소가 서블릿에 등록되지 않는다는 의미입니까? 그렇다면 그들에게 내가 잘못하고있는 것을 말해주십시오.

JSF에 익숙하지 않으므로 어떤 점이 누락 되었으면 알려주세요.

JSF2.2.7에서도 같은 시도를했지만 동일한 문제가 발생합니다.

답변

0

근본 원인을 찾을 수 없지만 문제가 해결되었습니다. JSF 2.2.7 jar와 동일한 코드를 시도했지만 대신 주석을 사용했습니다. 2.2.7에서 작동하지 않았다는 문제에서 언급했듯이, 기존의 패션 코드를 사용했기 때문에 taglib를 만들고 배포 설명자에서 업데이트하는 것과 같았습니다.