我在所有JSP文件包含的标头中定义了<%@ page errorPage="/error.jsp" %>
,以捕获任何未处理的异常并重定向到该错误页面而不是打印它们。这有一点需要注意 - 如果error.jsp本身抛出异常,它将在无限循环中不断重定向到自身。我想删除error.jsp的errorPage值,以便它只是正常打印异常。我尝试重新定义errorPage属性为空,但我收到以下错误:
Page指令:多次出现具有不同值的errorPage非法(old:/error.jsp,new:)
我有什么办法可以覆盖那个属性吗?或者有关如何防止此问题的任何其他建议?
答案 0 :(得分:1)
具有相同属性的多个page
声明确实是非法的。您的选择是:
答案 1 :(得分:0)
为什么不为错误页面提供不同的包含标题,而不包括它?!!
所以,而不是:
header.jsp
==========
a
b
c
errorPage=error.jsp
你可以:
commonHeader.jsp
===========
a
b
c
没有errorPage指令
修改标题以包含新标题。
header.jsp
===========
include=commonHeader.jsp
errorPage=error.jsp
这样你就不需要在jsp的其余部分中改变任何东西了
您只需要从以下位置更改您的errorPage:
include="header.jsp"
到
include="commonHeader.jsp"
并且errorPage将不再有错误页面....
答案 2 :(得分:0)
我最终只是通过用&lt;包围页面来处理它。 c:catch&gt;标签,以避免首先进行重定向,并打印一个例外的准系统消息,以确保它不会中断。