2011-11-17 27 views
5

Bileşik bir bileşende yönetilen bir fasulye parametresi ayarlamanın ve ardından hangi gerçek yönetilen fasulyenin kullanılacağına karar vermek için kullanma sınıflarını bırakmanın bir yolu var mı? çizgisindeYönetilen Bean'i Kompozit Bileşen'de parametre olarak ayarla

şey: o zaman 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> 

Ve kullanarak sayfa

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

    </ezcomp:comp> 

yılında benim durumumda ActualBean yılında SuperBean bir tipidir.

Bunun mümkün olduğundan bile emin değilim, ama birileri bana yanlış olduğunu kanıtlamanın harika olacağını söyleyelim.

temelde, yinelenen kod kaldırmak için önceden

+0

ile

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

Bu hiç mantıklı değil. Fonksiyonel gereksinim tam olarak nedir? Yönetilen fasulye türünü belirli bir türle sınırlamak mı? – BalusC

+2

Yinelenen kodu kaldırmak için temel olarak. Kompozit bileşende ayarlanması gereken pek çok özniteliğim var. Kullanan sayfalarda farklılık gösteren tek şey, yönetilen çekirdeklerin adıdır, hepsi bir süperbun alt tipi. Önemli değil, sadece mümkün olup olmadığını merak ediyordum. – glasspill

cevap

10

teşekkür ederiz. Kompozit bileşende ayarlanması gereken pek çok özniteliğim var. Kullanan sayfalarda farklılık gösteren tek şey, yönetilen çekirdeklerin adıdır, hepsi bir süperbun alt tipi.

Tüm özelliklerini belirtmek gerekmez. Sadece tek başına fasulye belirtmek yeterlidir. Kompozit bileşenindeki özelliklerini doğrudan referans alabilirsiniz.

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