I got a problem here, my system config was Mojarra 2.1.7, Primefaces 3.2 and using Glassfish 3.1+.
before this, i got my code well rendered using this codes:
As to the concrete problem, the is a view render time tag. Thus, it's physically present in the JSF component tree and generates its HTML output as many times as it needs to iterate over the value.
However, the expects physically multiple or children, not a single with therein a single . In other words, they needs to be prepared during the view build time instead of the view render time.
The JSTL is a view build time tag. It will generate physically multiple components into the JSF component tree and hence the will find solely children.
Note: this breaks view scoped beans in Mojarra versions older than 2.1.18. If you can't upgrade, then consider a instead, as you already found out yourself.