2013-08-12 8 views
0

어떻게하면 다른 컴포지트의 구현 태그 내에서 JSF2 컴포지트 (위젯)을 호출 할 수 있습니까?composite : JSF composite 내에서 JSF composite을 호출하는 방법?

그래서, 나는 다음과 같은 error: /resources/widgets/tileContainer.xhtml @25,45 <mywidgets:tileContainer> Tag Library supports namespace: http://java.sun.com/jsf/composite/widgets, but no tag was defined for name: tileContainer

코드 조각이 얻을 수행 할 때이 문제를 처리하는 방법에

<composite:interface name="tileContainer"> 
    <composite:attribute name="pubCategoryId" type="java.lang.Long" required="true" /> 
</composite:interface> 

<composite:implementation> 
    <div class="tileContainer"> 

     <ui:repeat value="#{pubController.getPubsByCategory(cc.attrs.pubCategoryId)}" var="pub"> 
      #{pub.title} 
      <mywidgets:tileContainer title="Private"> 
       <mywidgets:tileSmallPictureTitle       
        title="Bulk Dispatch Lapse stressed with application protocols"> 
       </mywidgets:tileSmallPictureTitle> 
      </mywidgets:tileContainer> 
     </ui:repeat> 

    </div> 
</composite:implementation> 

다른 설계 권장 사항?

의견을 보내 주셔서 감사합니다.

답변

0

좋아, 내 복합 디렉토리의 네임 스페이스 선언을 <html xmlns... 태그에서 <composite:implementation> 태그로 이동했습니다.

그래서 복합은 다음과 같습니다

<composite:implementation xmlns:mywidgets="http://java.sun.com/jsf/composite/widgets"> 

그렇지 않으면, 부모와 자식 복합체의 네임 스페이스를 잘못 해결됩니다.

+0

어떤 JSF impl/버전을 사용하고 있습니까? 이 버그는 오랜 전에 Mojarra 2.1.10 또는 어쩌면 하나 또는 두 버전 전후로 수정되었습니다. – BalusC

1

이것은 Mojarra 2.1.10 (2012 년 7 월 25 일에 릴리스 됨)에서 수정 된 Mojarra issue 2437으로 인식 할 수 있습니다. 당신이 오히려 구식 Mojarra 버전을 사용하고있는 것처럼 보입니다. 이미 2.1.25에있는 currently입니다. (2.2.x는 이미 해제되어 있지만, 지금은 2.2로 바꾸지 않는 것이 좋습니다. 모든 어린 시절의 질병을 먼저 수정하도록하십시오.)