项目中已引用jstl-1.2.jar,界面中
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>代码如下:
<c:forEach var="i" begin="1" end="11" >
     ${i}
 </c:forEach>报的错:
exceptionorg.apache.jasper.JasperException: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
root causejavax.servlet.ServletException: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.jsp.forum.register_jsp._jspService(register_jsp.java:140)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
root causejava.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
javax.servlet.jsp.jstl.core.LoopTagSupport.unExposeVariables(LoopTagSupport.java:587)
javax.servlet.jsp.jstl.core.LoopTagSupport.doFinally(LoopTagSupport.java:323)
org.apache.jsp.jsp.forum.register_jsp._jspx_meth_c_forEach_0(register_jsp.java:186)
org.apache.jsp.jsp.forum.register_jsp._jspService(register_jsp.java:120)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
 

解决方案 »

  1.   

    试了一下,<c:out value="2"></c:out>这个标签可以使用
    但这个遍历也没错啊,单使用EL好像也没法识别……比如说这个${path},页面上展示的就是“${path}”字符串
      

  2.   

    <c:forEach var="i" begin="1" end="11" >
      ${i} 
     </c:forEach>这里的集合没有赋值啊
    页面不编译标签 可以在头部加上 
    <%@ page isELIgnored="false"%> 
      

  3.   

    <c:forEach var="${i}" var="entry" begin="1" end="11" >
      ${entry}
     </c:forEach>
      

  4.   

    刚刚试了一下,代码如下,发现加了<%@ page isELIgnored="false"%>,就直接${map}可以取到map的值了,但是不能遍历……这是为什么,这回可是赋值了
    <body>
      <%
       Map<String,String> map = new HashMap<String,String>();
       map.put("1","aa");
       map.put("2","aa");
       request.setAttribute("map",map);
       %>
       <div><jsp:include page="/jsp/top.jsp"/></div>
       <div id="left">

    <c:forEach var="op" items="${map}">  <!--这里遍历取值,又报错了 -->
    ${op.key}
    </c:forEach>
    </div>
      </body>
    错误如下:
    org.apache.jasper.JasperException: /jsp/index/school.jsp(38,2) According to TLD or attribute directive in tag file, attribute items does not accept any expressions
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
      

  5.   

    在网上找了些答案,说可能是jstl版本问题解决方法:

    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
    改为:
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>但是我改完以后,又出现了一开始的错误
    org.apache.jasper.JasperException: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
    。郁闷无比