I was able to achieve what I wanted using a custom Faces component. I'm using a mixture of the JSTL core and Facelets UI tags which somehow leads to an empty children collection in composite components. Here is the code I'm using as a componentType of my composite interface:
@FacesComponent(value = "faces.CompositeComponent")
public class CompositeComponent extends UINamingContainer {
private List<UIComponent> children;
public Iterator<UIComponent> getFacetsAndChildren() {
Iterator<UIComponent> iterator = super.getFacetsAndChildren();
List<UIComponent> superChildren = super.getChildren();
if (children == null || (children != null && children.size() < superChildren.size())) {
children = new ArrayList<UIComponent>();
for (UIComponent c : superChildren) {
children.add(c);
}
}
return iterator;
}
public List<UIComponent> getChildren() {
return children;
}
}
[Message sent by forum member 'rostislav' (rostislav)]
http://forums.java.net/jive/thread.jspa?messageID=359179