1. forEach appears only suppported by JSTL 1.2.
2. JSTL 1.2 is part of java EE 5 platform. Howerver, it can also work with tomcat 6. Tomcat 5 appears not working.
3. To make tomcat 6 work with JSTL 1.2. Following instructions at :
http://www.mularien.com/blog/2008/02/19/tutorial-how-to-set-up-tomcat-6-to-work-with-jstl-12/comment-page-1/
Basically find javaee.jar and appserv-jstl.jar from glassfish/lib and copy the former to tomcat6/lib and the latter to app/WEB-INF/lib.
4. forEach will NOT work if using with jsp:usebean!! As long as it's a collection, forEach will be able to iterate through each of the collection.
5. Although not required, you might want to update to use servlet 2.5 in your web.xml when upgrade to tomcat 6.