2011-02-23 86 views
2

我正在開發一個JSF 2.0複合組件。我正在嘗試創建一個盒子組件,我的所需HTML將設置爲屬性。如何傳遞節點值作爲JSF 2.0中複合組件的屬性

有些東西一樣..

<composite:interface> 
    <composite:attribute name="value" /> 
</composite:interface> 
<composite:implementation> 
    <table cellpadding="0" cellspacing="0" border="1" width="100%"> 
     <tr> 
      <td></td> 
      <td>#{cc.attrs.value}</td> 
      <td></td> 
     </tr> 
    </table> 
</composite:implementation> 

當我想使用這個組件,並通過所需的HTML屬性「值」,就像這樣:

<someDir:boxComp>Hello</someDir:boxComp> 

的「你好」是不作爲屬性值。 我如何使節點值作爲屬性值。

回答

2

您沒有將它作爲標籤屬性傳遞。你只是將它作爲孩子在標籤主體中傳遞。在這種情況下,您需要使用<composite:insertChildren />來插入它。所以,相反的

<td>#{cc.attrs.value}</td> 

你應該做

<td><composite:insertChildren /></td> 

或者如果你實際上要使用#{cc.attrs.value},那麼你應該將其定義爲一個真正標籤屬性從開始而不是作爲標籤主體:

<someDir:boxComp value="Hello" />