重复刷新页面呈现成功并返回错误

时间:2014-02-10 21:51:48

标签: java jsp

我是一名在Java-JSP网站上工作的新手。手动刷新JSP页面会在4次或5次刷新后重复返回错误。所有其他尝试都成功呈现页面。没有对JSP执行任何更改。我很难过。任何人都能提供一些见解吗?如果需要,我可以提供更多信息。非常感谢你。

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 97 in the jsp file: /uploadedDocs.jsp
The method getAllDocuments() is undefined for the type Documents
94:                         width="100%">
95:                         <tr class="tablehead">
96:                             <td colspan=6>UPLOADED     FILES</td>
97:                             <%=documents.getAllDocuments()%>
98:                         </tr>
99:                         <tr class="tablehead">
100:                            <td colspan=6>UPLOAD FILE</td>


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:443)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

我的JSP页面有一个嵌入式Java方法调用,用于获取在数据库中上传的文档列表。

<jsp:useBean id="documents" class="com.test.Documents" />
<%documents.initBean(request, response, session, application);%>

1 个答案:

答案 0 :(得分:1)

堆栈跟踪非常好地描述了错误:类型getAllDocuments() 的方法Documents 未定义。验证您的Documents类是否已定义此方法。如果是,请确保重建所有源并在应用程序服务器中执行干净部署。


与您当前的问题无关,如果您可以停止使用scriplet会更好,因为十多年前不鼓励使用它们(请参阅此处获取更多信息:How to avoid Java code in JSP files?)。

由于方法getAllDocuments()似乎返回了Document的列表,因此您可以使用JSTL <c:forEach>来相应地显示它们:

<tr class="tablehead">
    <td colspan=6>UPLOADED     FILES</td>
    <%-- =documents.getAllDocuments() --%>

    <c:forEach items="${documents.allDocuments}" var="doc">
        <%-- naive way to print the name of the document (assuming you have a name property) --%>
        ${doc.name}
        <br />
    </c:forEach>
</tr>