This is found in JSTL 1.1 spec section 6.1.1.
I cannot understand the constraints mentioned for Enumeration and Iterator objects.
".... A large number of collection types are supported by <c:forEach>, including all implementations of java.util.Collection (includes List, LinkedList,
ArrayList, Vector, Stack, Set), and java.util.Map
Implementations of java.util.Iterator and java.util.Enumeration are
supported as well but these must be used with caution. Iterator and
Enumeration objects not resettable so they should not be used within more than one iteration tag."