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がこのように動くのが正しい仕様なのかも確認はしていない。