Ho avuto anch'io lo stesso problema e la documentazione delle
JSTL su questo punto per me non è affatto chiara.
Il tuo codice andava bene con le JSP 1.2 dove le EL expression (quelle dentro a ${...} per intenderci) erano valutate solo all'interno dei tag.
Con le JSP 2.0 invece le espressioni EL si possono usare ovunque nella pagina, però per continuarle a usare nei tag
bisogna cambiare la libreria dei tag.
Per farla breve dovrebbe essere sufficiente nella prima riga sostituire http://java.sun.com/jstl/core con http://java.sun.com/jstl/core_rt