Geetu,
I ran into this exact problem in my project. The key is whether you are using JSTL 1.0 or JSTL1.1. JSTL 1.0 demands that you s <c

ut value"">, while JSTL 1.1 uses the direct approach of ${}. AND the most important thing is know which version of servlet your serer is using(2.3 or 2.4). I noticed that JSTL1.0 supports Servlet 2.3 and JSTL1.1 support 2.4. So, proper adjustments need to be made in your web.xml file to reflect these changes.
JSTL1.0
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
JSTL1.1
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd" version="2.4">