在尝试对 JSP 进行一些错误处理时,我注意到一些奇怪的行为。
我创建了一个 Myobject 但没有在其中放入任何内容来导致空指针进行测试。
我在我的页面中包含了 errorPage 指令,因此当发生此异常时它应该转到我的错误页面。
实际的错误将发生在表单的输入中:
....
<input type="hidden" id="INITIAL_ACTION" name="INITIAL_ACTION" value="<%=Myobject.myMethod()%>"/>
<input type="hidden" name="INITIAL_PAGE" ....
我看到了 errorpage 的内容,因此 errorpage 指令正在工作,但页面看起来不正常。现在,当我查看页面的源代码时,看起来 errorpage 实际上已插入到我上一页上的此 INITIAL_ACTION 输入的值中,而不是转发:
...
<input id="INITIAL_ACTION" type="hidden" value=" <html> <head> <title>ErrorPage</title> <link rel = 'stylesheet' type = 'text/css' href = '../css/newstyle.css' /> </head> <body> <div id=" name="INITIAL_ACTION"></input>
<table class="borderedtable">
<tbody>
<tr> … </tr>
<tr> … </tr>
...
当然,这在实际错误页面上给了我一些布局/css 问题。任何人都可以解释这种行为或指出我正确的方向吗?
编辑 :
增加页面缓冲区有效。
但这对于我当前的应用程序来说很难确定哪些页面需要它来确保它们的错误处理工作正常。
问题是错误页面中第一个DIV的id-attribute的第一个double quoute被用来关闭它插入位置的value-attribute..
在错误页面的顶部,我添加了一个 html 注释,其中包含双引号 + 解释。现在使用该引号,并且页面的其余部分渲染得很好。
但我不太喜欢我的解决方案,感觉不可靠