1

我有一个 JSP,它通过<jsp:include>. 我也有(我认为是)标准错误页面设置。问题是,当包含文件中发生异常时,它不会“冒泡”到包含 JSP。相反,它在处理包含的 JSP 的过程中插入错误页面。

奇怪的是,它甚至没有在发生错误的行插入错误页面的输出。例如,如果我在包含的 JSP 的第 600 行引起异常,我将看到前 300-400 行的输出,然后看到错误页面(在输出的 HTML 中)。

而不是在这种情况下出现的包含文件的前 300-400 行,我更愿意看到的是包含页面的输出根本没有出现,而只是错误页面输出。这是可能的,还是包含文件的缓冲有一些问题会阻止它?

哦,我已经尝试在包含标签上设置“flush='true'”,并且我尝试在包含器和包含器上将所有内容都包装在 try/catch 中……但这些都没有帮助。

4

2 回答 2

2

是否使用大缓冲区 ( <%@ page buffer="1024kb" %>) 和flush="false"包含工作?

于 2009-05-25T19:17:40.763 回答
1

最初的“冒泡”问题可能取决于 Web 容器。我们使用 Websphere 7,它的工作方式与其他 Websphere 版本不同:包含页面的异常不会传播回包含器 jsp。当没有为包含的页面定义任何错误页面时,异常的消息将打印到输出流中。

对于 websphere 7,我们发现了以下参数,该参数允许异常通过 jsp:include 标记冒泡:com.ibm.ws.webcontainer.dispatcherRethrowSError 来自 fixpack 15。这里是附加信息:http://pic.dhe。 ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frweb_custom_props.html

如果是其他 Web 容器,我还没有遇到过这个问题。

于 2012-07-05T15:40:17.263 回答