I'm creating a composite component in JSF 2..., inside it I have defined a controller attribute which should point to a custom object which handles the logic behind the component.
Basically the component has a dropdownMenu that's created dynamically based on some options provided by the controller.
I tried something like this:
<composite:interface>
<composite:attribute name="id" required="true" />
<composite:attribute name="controller" required="true"/>
</composite:interface>
<composite:implementation>
<a4j:outputPanel layout="block" id="pnlTaskOptions" style="width:300px;">
<rich:dropDownMenu mode="ajax">
<f:facet name="label">
<h:panelGroup layout="block" styleClass="botonA" rendered="true">
<h:outputLink styleClass="solicitarAutorizacionA"
value="#{msg_autweb['etiqueta.aprobar']}"
immediate="true"/>
</h:panelGroup>
</f:facet>
<a4j:repeat value="#{cc.attrs.controller.taskOptions}" var="option">
<rich:menuItem label="opcion"
action="#{cc.attrs.controller.executeOption(option)}"
render="pnlTaskOptions">
</rich:menuItem>
</a4j:repeat>
</rich:dropDownMenu>
</a4j:outputPanel>
</composite:implementation>
cc.attrs.controller.taskOptions is an String arrayList that's filled inside the controller's constructor.
I have debugged the getters of it, and checked that the array was being retrieved correctly, in other words checked that it wasn't empty.
However the menu didn't appear, like if there were no children menu items. What's going on? Isn't possible to use a a4j:repeat inside a composite component?