严重: Servlet.service() for servlet DoIndex threw exception

来源:互联网 发布:有关网络法律讲堂 编辑:程序博客网 时间:2024/05/09 04:05

在用jstl做jsp的时候报这个错误

严重: Servlet.service() for servlet DoIndex threw exception
org.apache.jasper.JasperException: <h3>Validation error messages from TagLibraryValidator for c in /index.jsp</h3><p>74: Empty var attribute in "j:forEach" tag.</p>
 at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
 at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
 at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:74)
 at org.apache.jasper.compiler.Validator.validateXmlView(Validator.java:1823)
 at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1769)
 at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
 at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
 at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
 at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
 at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
 at com.dragon.servlet.DoIndex.doPost(DoIndex.java:131)
 at com.dragon.servlet.DoIndex.doGet(DoIndex.java:66)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
 at java.lang.Thread.run(Thread.java:619)

找了半天不知道为什么只知道标签用的有问题

这是页面中的代码

<%--显示所有的子类菜单 --%>
   <j:forEach var="categoryInfo" items="${requestScope.categoryInfoList }" varStatus="status">
     <%--判断是否为第一个 --%>
    <j:if test="${status==0}">
     <li class="first"><a href="#">${categoryInfo.categoryName }</a></li>
    </j:if>
      </j:forEach>

开始还以为什么写错了可是仔细的检查了一席,没错 发现只要把判断条件去掉就好了加上就报错

最后发现原来忘了在status后点index属性

改成status.index就好了

哎!一时铸成千古恨!恨死自己了把这个给忘了 希望对和我犯一样错误的人有所帮助!