>JSPかservletの書き方が悪かったのかと思ったのですが、
>そうではないということなのでしょうか。
書き方が悪いんだよ。
オレはほとんど JSP の素人で struts がなんたるかも知らんのだが、>>564 でなぜ解決したかはここまでの流れで分かる。

お前さんが struts 任せにしてある部分で、"forward" 処理がされてる。
forward というのは、今処理している JSP ではなく、別の JSP の内容をクライアントへ出力する処理だ。
だから処理中の JSP からは、何か出力してもまったく意味がない。
しかし JSP がタグの中にコードを埋め込んでいくというものである以上、
サーブレットに変換されたあとのソースは、文字列の出力と出力の間に処理を行う、という内容になる。
つまり君が、何らかの文字列を出力するよりはやく forward されるようにしないかぎり(君の書き方が悪いというゆえん)、
forward 前に「出力」はされてしまうのだ。

さてここでいう出力とは、サーブレットから外への出力だが、
出力した文字列はある一定のバッファにたまっていて、バッファの容量が許すかぎり、
「送信」そのものは行われない。
おそらくはじめての送信時をコミットというのであろう。
一旦送信開始されてしまえば、そのあと forward したらそらまずいわな。
中途半端なページが、正しいページの前にクライアントに送信される形になるなど、不具合が出る。

おそらく javascript 部分が長すぎるため、バッファがたまり送信が始まってしまっていたが、
改行を削ったことでバッファに収まり、送信開始される前に forward にこぎつけ、
不要となった JSP コードは破棄されたのであろう。
だから javascript がどうとか関係ない。その部分が単なるコメントであれ他のタグであれ表示される文字列であれ、
ただ単に長すぎるから失敗したのであり、それよりもそもそも、
forward されることで出力する必要がなくなる(かもしれない)文字列を、
forward 部分より前に書くべきではないということであろう。