I am developing a JSF 2.0 composite component. I am trying to create a box component to which my required HTML will be set as attribute.
Some thing like..
<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>
When I want to use this component and pass the required HTML to the attribute "value", like so:
<someDir:boxComp>Hello</someDir:boxComp>
the "Hello" is not taken as attribute value. How i can make the node value as an attribute value.?
You aren't passing it as tag attribute. You are just passing it as child in the tag body. In that case you need to use
<composite:insertChildren />
to insert it. So, instead ofyou should be doing
Or if you actually want to use
#{cc.attrs.value}
, then you should be defining it as a real tag attribute from the beginning on instead of as tag body: