2012-11-14 2 views
0

f:facet의 부모 구성 요소를 지정하여 p:dialog 구성 요소의 하위 구성 요소로 지정하는 방법은 무엇입니까? 나는 이것을 시도했지만 머리글은 렌더링되지 않습니다.패싯의 부모 구성 요소를 지정하여 대화 상자 구성 요소 내에서 헤더를 렌더링하는 방법

<p:dialog id="pageDialog"> 
    <p:outputPanel> 
     <p:outputPanel> 
      <f:facet name="header" parent="pageDialog" > 
       Followed Topics 
      </f:facet> 
     </p:outputPanel> 
    </p:outputPanel> 
</p:dialog> 
+0

그냥 그것을''의 자식하거나 그냥 대화 상자의 'header' 속성을 사용합니다. 왜'

'안에'

'이 있습니까? – kolossus

+0

고마워, 알아. 이것은 정확한 코드가 아니라 단순화 된 버전입니다. 이 중첩 된'outputPanel' (s)은 내 케이스가 동일한 대화 상자 안에 여러 콘텐츠 유형 중 하나를 렌더링하는 데 필요합니다. –

답변

0

그건 불가능합니다. <f:facet>은 가장 가까운 상위 구성 요소에 특정한 by specification입니다.

<p:outputPanel>을 작업을 수행 할 수있는 사용자 지정 구성 요소로 확장 할 수 있습니다. 당신은 UIComponent에서 상속받은 getFacets() 메소드를 통해 패싯을 가져오고, 추가하고 제거 할 수 있습니다. preRenderView 이벤트 기간 동안 다음과 같은 작업을 수행합니다

UIComponent headerFacet = getFacets().remove("header"); 

if (headerFacet != null) { 
    UIComponent dialog = getItSomehowPerhapsBasedOnAnAttribute(); 
    dialog.getFacets().put("header", headerFacet); 
} 
+0

JSF 구성 요소에 새로 추가 된'parent' 속성으로 인해 혼란스러워졌습니다. 그것이 무엇을 위해 사용되는지 명확히 할 수 있습니까? –

+0

그 속성은 전혀 존재하지 않습니다. 태그 설명서의 속성 목록을 실제로 보지 않고 그냥 부주의하게 임의의 추측을한다고 가정했습니다. 내 대답의 "사양 별"링크는 소개에있는 태그의 성격을 명확하게 설명하고 사용 가능한 모든 속성 (실제로는 하나만 있음)을 나열하는 ''태그 문서를 가리 킵니다. – BalusC

관련 문제