Я создаю составной компонент в JSF 2 ..., внутри него я определил атрибут контроллера, который должен указывать на пользовательский объект, который обрабатывает логику позади компонента.
В основном компонент имеет dropdownMenu, который создается динамически на основе некоторых опций, предоставляемых контроллером.
Я пробовал что-то вроде этого:
<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 - это String arrayList, который заполняется внутри конструктора контроллера.
Я отладил его получатели и проверил, что массив был получен правильно, другими словами, проверил, что он не пустой.
Однако меню не появилось, как если бы не было дочерних пунктов меню.
В чем дело? Не возможно использовать a4j: повторить внутри составного компонента ?? Большое спасибо.