2011-11-17 8 views
5

コンポジット・コンポーネントでマネージド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> 

これは意味がありません。機能要件は正確には何ですか?マネージドBeanの型を特定の型に制限しますか? – BalusC

+2

重複するコードを基本的に削除します。私は複合コンポーネントに設定する必要がある多くの属性があります。使用しているページで異なる唯一のものは、マネージドBeanの名前で、すべてスーパーBeanのサブタイプです。それは不可欠ではない、私はそれが可能かどうかだけ考えていた。 – glasspill

答えて

10

、ありがとうございました。私は複合コンポーネントに設定する必要がある多くの属性があります。使用しているページで異なる唯一のものは、マネージドBeanの名前で、すべてスーパーBeanのサブタイプです。

すべての属性を指定する必要はありません。豆だけを指定するだけで十分です。複合コンポーネントのプロパティを直接参照することができます。

<ezcomp:comp pageBean="#{actualBean}" /> 
関連する問題