処理が正常終了しているのにJSP画面が上手く表示されない!!
4月から配属された現場でJSPを初めて触ってます。
今日、ちょっとだけハマったのでメモ。
【現象】
JSPからJavaへ処理を飛ばして、同じJSP画面にレスポンスを返した時にJSP画面が正しく表示されなかった。
具体的には画面表示処理が途中で止まっている感じで、画面上半分は描画されているんだけれど、下半分は描画されていないという奇妙な現象。
【環境】
OS :Windows10
APサーバー:Tomcat 8.5
JDK : 8
【調査】
まずはエラーログ。
しかし、かなり特殊なパッケージを使用した開発環境のため、パッケージ専用のアプリログしかありません。
ログを辿るもエラーは無し。
JSPってHTML部分も含めてステップ・オーバーできるんですね。
便利。
そしてここで原因が判明。
JSP内で使用していたEL式で例外が発生していました。
【原因】
<!-- ここでSAMPLE_COLがNullの場合にNullPointerExceptionで落ちる --> ${data.SAMPLE_COL > 0 ? data.SAMPLE_COL : 0}
【ちょい調べ】
いやでもちょっと待たれよ。
こんなに内部エラー分かりにくくていいわけ?
デバッグしないと画面表示がおかしくなる原因が例外によるものなのか環境によるものなのかすら分からないってどんだけ。
そのためJSPにおいて、例外への理想的な対応はどういったものか調べてみる。
↓非常に参考になったサイト↓
内部エラーが発生したときに飛ぶページを指定できるジャマイカ。
自分の携わっているプロジェクトのJSPを見る……書いてないね。
ここのプロジェクトはテンプレートがきまっているらしいので、何かしら書かない意味があるのかもしれない。
でも、とりあえず自分が手を入れる時は、タスク管理をしてリリース前に消すことを念頭に置きつつ、デバッグ用にエラーページに飛ばす指定は入れようと思いました。
開発時は問題起こったら即原因知りたいしね。
以上!!