title: How to use JSTL in a GWT project?
body: <p>i am building a GWT project, with GWT-2.0.3 and eclipse plugin.
  well, first i tried, JSTL1.2 and servlet 2.5, </p>
  
  <ul>
  <li>i do add jstl-1.2.jar to war/WEB-INF/lib</li>
  <li><p>in web.xml, i use:</p>
  
  <pre><code>&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
      id="WebApp_ID" version="2.5"&gt;
  </code></pre></li>
  <li><p>in the jsp page, i use:</p>
  
  <pre><code>&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt;
  
  &lt;c:forEach var="app" items="${requestScope.apps}"&gt;
      &lt;tr&gt;&lt;td width=20%&gt;&lt;c:out value="${app.mapping}"&gt;&lt;/c:out&gt;&lt;/td&gt;
      &lt;td width=40%&gt;&lt;c:out value="${app.description}"&gt;&lt;/c:out&gt;&lt;/td&gt;
      ...
  </code></pre></li>
  </ul>
  
  <p>If I remove the foreach tag, it works fine. but if I use the core tags, I get the following exception:</p>
  
  <pre><code>HTTP ERROR: 500
  
  javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
  RequestURI=/system/view/register.html
  
  Caused by:
  
  java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
      at javax.servlet.jsp.jstl.core.LoopTagSupport.unExposeVariables(LoopTagSupport.java:587)
      at javax.servlet.jsp.jstl.core.LoopTagSupport.doFinally(LoopTagSupport.java:323)
      at org.apache.jsp.system.view_jsp._jspx_meth_c_forEach_0(view_jsp.java:267)
      at org.apache.jsp.system.view_jsp._jspx_meth_a_body_0(view_jsp.java:186)
      at org.apache.jsp.system.view_jsp._jspService(view_jsp.java:98)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
      at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
      at org.app4j.test.DispatchServlet.doGet(DispatchServlet.java:133)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:324)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
      at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
  Powered by Jetty://
  </code></pre>
  
  <p>If i deploy the project to Tomcat 6, it works fine. i search on the web, and i find a article, <a href="http://robin.mytechtip.com/2009/07/23/jsp-expression-language-in-gwts-embedded-jetty/" rel="nofollow noreferrer">"JSP Expression Language in GWT’s embedded Jetty"</a>, so i tried jstl-1.1 and servlet2.4, but i still get that exception.
     <br/>
     i find the GWT's jetty server version should be 6.1, but i am not sure about it, if that is true, it should support EE5, so any one has integrated GWT and JSTL? please help! thanks.</p>