gpt4 book ai didi

java - JasperException 的可能原因有哪些

转载 作者:行者123 更新时间:2023-11-28 21:57:20 24 4
gpt4 key购买 nike

我有一个 JSP,它从 session 对象中获取一个 Arraylist 并从中删除项目。它似乎工作正常,然后当我导航到该页面时不知从哪里冒出来,该页面是空白的。我检查了 Tomcat 日志文件,在 catalina.out 中我收到了一个 JasperException,它显示它与以下内容在同一行

for(int i; i < agentItems.size(); i++)

agentItems 是我正在使用的 ArrayList 的名称。我一直在调试它,似乎无法弄清楚可能是什么问题。我读到过 JasperException 有时会作为 JSP 的 NullPointerException 抛出。这是真的还是我完全忽略了这个问题?

我有一个在本地机器上运行的 Web 应用程序和一个用于开发的中间服务器,它们都没有遇到任何问题。为什么只有在这台服务器上它才会给我带来问题?

最佳答案

这可以是一切。您需要进一步查看堆栈跟踪,查看 caused byroot cause 部分以及随后出现的跟踪。它可能是由很多事情引起的。 JSP 基本上被编译成一个大的 try block 和任何捕获的 Throwable将被包装到 servletcontainer 特定的异常中,如 Tomcat 中的 JasperException 和克隆。归结为:

try {
// All translated JSP code comes here. Max 64K.
} catch (Throwable t) {
throw new JasperException(t);
}

检查堆栈跟踪第一行中的 .java 文件名,在 servletcontainer 的 work 目录中找到它并在编辑器中打开该文件。看到了吗?

也就是说,使用scriptlet 是一个bad practice .使用Servlets控制/预处理/后处理请求,使用Javabeans表示数据模型,使用JSP中的Taglibs控制页面流和输出,使用JSP中的表达式语言(EL)访问后端数据。在您的特定情况下,您可以使用 JSTL 的 c:forEach 标记遍历数组或 List

<c:forEach items="${agents}" var="agent">
<p>Agent: ${agent.name}
</c:forEach>

关于java - JasperException 的可能原因有哪些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2741954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com