JSP でエラー処理を試しているときに、奇妙な動作に気付きました。
Myobject を作成しますが、テスト用に nullpointer を発生させるものは何も入れません。
ページに errorPage ディレクティブを含めたので、この例外が発生したときにエラーページに移動する必要があります。
実際のエラーは、フォームの入力で発生します。
....
<input type="hidden" id="INITIAL_ACTION" name="INITIAL_ACTION" value="<%=Myobject.myMethod()%>"/>
<input type="hidden" name="INITIAL_PAGE" ....
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 属性の最初の二重引用符が、それが挿入された場所の値属性を閉じるために使用されていたことです。
エラーページの上部に、二重引用符と説明を含む html コメントを追加しました。これで、その引用符が使用され、ページの残りの部分が正常に表示されます。
しかし、私は自分のソリューションがあまり好きではなく、しっかりしているとは感じません