Hatena::ブログ(Diary)

on the center line.

2008-09-21

WebLogic をバージョンアップしたときに、(JSPで)空白が「null」となってしまう問題

| 15:53

アプリケーションサーバを、WebLogic6からWebLogic10にバージョンアップするという仕事で、問題が発生しました。問題となったのは、JSPスクリプトレットを評価した結果が null のときです。

<% String s = null; %>
<%= s %>

この実行結果は、JSPの仕様からすると「null」と出力されて当然なのですが、WebLogic6ではこれを空白に変換します。担当したアプリケーションは、このWebLogic6の仕様に基づいて作られていたので、<%= null %>となる箇所が随所にありました。JSPの仕様にあわせて修正するとなると、

<%= s == null? "": s %>

としなければならないので、これは大変な修正量だ、と途方にくれていたのですが、簡単な解決策がありました。

http://edocs.beasys.co.jp/e-docs/wls/docs70/upgrade/upgrade6xto70.html#327303

ちゃんと下位互換性を保てるようにできてました。「printNulls」というフラグを false に設定することで、

<%= null %>

このコードは空白に変換されるようになります。一件落着。