我是一名在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);%>
答案 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>