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

アプリケーションサーバを、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 %>
このコードは空白に変換されるようになります。一件落着。