WebSphere V5.1

現在、ちょっと古いシステムのメンテプロジェクトにいるのだが、そこではWebSphere V5.1を使用している。

最近発見したのだが、JSPに<A HREF>タグを書くと、勝手に改行してから出力する場合があるようだ。<A HREF>タグの前にフォーム部品(例えば、input type="hidden"など)があれば、改行しないようだ。特定のVersionに依存するのだとは思うけれど、ちょうどカスタムタグ内でAタグを利用している箇所でこの現象がでたので、1日近くも悩んでしまった。

具体的にはJSPに以下のように書くとbbbの後で改行してしまうのだ。

aaa<A HREF="AAA">AAA</a>.<br />
bbb<A HREF="BBB">BBB</a>.<br />

実際に出力される文字はAタグの前で改行しているので、。ブラウザでは以下のように空白1文字が追加されているように見えてしまうのだ。

aaaAAA.
bbb BBB.

そこで以下のようにJSPを修正して回避した。

<input type="hidden" name="dummy"/>
aaa<A HREF="AAA">AAA</a>.<br />
bbb<A HREF="BBB">BBB</a>.<br />

ブラウザでの表示イメージは以下のようになり、これでbbbの間に空白が空かなくなった。

aaaAAA.
bbbBBB.

もちろん根本的な解決ではない。WebSphere V5.1がこのように動くのが正しい仕様なのかも確認はしていない。