2011-11-17 4 views
5

복합 컴포넌트에서 관리 Bean 매개 변수를 설정 한 다음 사용 클래스를 사용하여 실제 사용할 관리 Bean을 결정하는 방법이 있습니까? 의 라인을 따라복합 컴포넌트의 매개 변수로 관리 Bean을 설정하십시오.

무엇인가 : 다음 comp.xhtml

 <cc:interface> 
      <cc:attribute name="price" /> 
      <cc:param name="pageBean" value="#{superBean}" />  
     <cc:interface> 
     <cc:implementation> 
       <h:outputText value="#{cc.attrs.price}"/> 
     </cc:implementation> 

그리고, 사용 페이지

<ezcomp:comp pageBean="actualBean" 
          price="#{actualBean.price}" > 

    </ezcomp:comp> 

에서 내 경우 ActualBean에서이 SuperBean의 하위 유형입니다.

나는 이것이 가능하지는 않지만 누군가가 나를 틀린 것으로 증명하면 좋을 것이라고 말하려합니다.

은 기본적으로 중복 코드를 제거하려면 사전

+0

<cc:interface> <cc:attribute name="pageBean" type="com.example.SuperBean" required="true" /> <cc:interface> <cc:implementation> <h:outputText value="#{cc.attrs.pageBean.price}"/> </cc:implementation> 

이는 이해되지 않는다. 기능 요구 사항은 정확히 무엇입니까? 관리 빈 유형을 특정 유형으로 제한 하시겠습니까? – BalusC

+2

기본적으로 중복 코드를 제거합니다. 복합 컴포넌트에서 설정할 필요가있는 많은 속성이 있습니다. 사용 페이지에서 다른 유일한 점은 관리 Bean의 이름이며, 모두 superbean의 부속 유형입니다. 그것은 필수적 아니에요, 난 그것이 가능한지 궁금 해서요. – glasspill

답변

10

에 감사드립니다. 복합 컴포넌트에서 설정할 필요가있는 많은 속성이 있습니다. 사용 페이지에서 다른 유일한 점은 관리 Bean의 이름이며, 모두 superbean의 부속 유형입니다.

모든 속성을 지정할 필요는 없습니다. 콩만 따로 지정하면 충분합니다. 복합 컴포넌트에서 해당 속성을 직접 참조 할 수 있습니다.

<ezcomp:comp pageBean="#{actualBean}" />