Suppose that you have a composite component that accepts children via
the <cc:insertChildren/>
tag. Sometimes you may need to render a certain message when the list of
children is empty, and for this you may think of writing a composite component
implementation, as shown in the following code:
<!--
IMPLEMENTATION -->
<cc:implementation>
<div id="#{cc.clientId}">
<ul>
<cc:insertChildren/>
<h:panelGroup
rendered="#{cc.childCount == 0}">
The list of names is empty!
</h:panelGroup>
</ul>
</div>
</cc:implementation>
Now if the composite component is used as follows, you may think that
the message The list of
names is empty! will be rendered:
<t:iccc/>
Well, you are right! But, the same message, next to the list content,
will be rendered when the component is used as follows:
<t:iccc>
<li>Mike</li>
<li>Andrew</li>
</t:iccc>
In order to solve this issue, you can use the following code:
<cc:implementation>
<div id="#{cc.clientId}">
<ul>
<cc:insertChildren/>
<c:if test="#{cc.childCount ==
0}">
The list of names is empty!
</c:if>
</ul>
</div>
</cc:implementation>
Niciun comentariu :
Trimiteți un comentariu