javax.servlet.jsp.JspTagException: 'begin' <0 - PullRequest
       30

javax.servlet.jsp.JspTagException: 'begin' <0

3 голосов
/ 21 сентября 2010

javax.servlet.jsp.JspTagException: 'begin' <0 </p>

Время от времени вы сталкиваетесь с ошибкой и говорите: Что ЧТО ??tagexception begin <0. Видел это чудо раньше ?? </p>

1 Ответ

2 голосов
/ 21 сентября 2010

Я попытался воспроизвести ваше исключение с помощью следующего фрагмента:

<c:forEach begin="-1" end="1">
    <p>blah
</c:forEach>

Однако на странице ошибок Tomcat по умолчанию я получил гораздо более четкую и понятную трассировку исключений:

org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp.jsp at line 12

9:     <body>
10:         
11: 
12: <c:forEach begin="-1" end="1">
13: <p>bla
14: </c:forEach>
15: 


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.servlet.ServletException: javax.servlet.jsp.JspTagException: 'begin' < 0
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
    org.apache.jsp.jsp_jsp._jspService(jsp_jsp.java:74)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.servlet.jsp.JspTagException: 'begin' < 0
    javax.servlet.jsp.jstl.core.LoopTagSupport.validateBegin(LoopTagSupport.java:478)
    org.apache.taglibs.standard.tag.rt.core.ForEachTag.setBegin(ForEachTag.java:55)
    org.apache.jsp.jsp_jsp._jspx_meth_c_005fforEach_005f0(jsp_jsp.java:90)
    org.apache.jsp.jsp_jsp._jspService(jsp_jsp.java:65)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.

Возможно, что-то не так с вашей обработкой или интерпретацией исключений? Похоже, что вы печатаете / отображаете e.getMessage() первопричины на некоторой настраиваемой странице ошибок и игнорируете остаток информации из трассировки стека. Я бы предложил добавить e.printStackTrace(), чтобы по крайней мере было ясно, откуда оно.

...