質問: jsp 改行コードで改行させて表示したい はじめまして。 postgresqlから読み込んだ文字列データを表示させるtomcat+struts+servlet/jspを作成中です。 データの文字列に含まれる改行が、クライアントに表示された際に反映されず困っています。 過去ログも調べ、近い質問はありましたが、僕とは内容が微妙に違うようで、改めて質問させていただきました。 例えば、あるテーブルのある項目に、 a b c というデータ(a,bそれぞれの後に改行のある3行の文字列)があるとします。 これを読み込みaction form bean(と言うのですか?setter/getterを定義する関数です)を介してjspに埋め込むと、できあがるhtmlでは、 abc と改行されずに表示されます。 htmlで改行させるには「 」が必要なのかと、データ文字列に0x0dや0x0a、または0x0d+0x0aがあれば「 」に置き換えてaction form bean(?)のsetterに渡してjspを作ると、今度は、 a b c と「 」が文字列として表示されます。 htmlをソース表示すると、「abc」で、親切にも「<」「>」をそれぞれ「<」「>」に勝手に置き換えあくまで文字列として表示してくれるようです。 試しに改行コードを「」に置き換えても予想通りその部分は とそのまま表示され、そのソースは「<br>」でした。 「<」や「<」等をそれぞれ「<」「<」のように置き換える作業は、どこが行っているのでしょうか。 また、改行位置で改行させるにはどうすればよろしいでしょう。 osはwindowsxpです。 無知ゆえに、つまらないことで悪戦苦闘しているのかも知れませんが、経験も浅くてよく解りません。 宜しくお願い致します。
回答: 私も経験が浅いので、分からない部分が多いのですが、 "<"や">"を置き換えるという機能は、 javaというより、strutsが提供している機能らしいです。 "<"や">"を置き換える機能を持たせないと、 ユーザーが何かフォーマットに入力するときに、 javascriptを書き込んで、 例えば、alertを出し続けるようないたずらができてしまうので、 そういうことを防ぐために、変換機能を持っているのだと思います。 (具体的にどのタイミングで変換しているかは分からないのですが・・・) 単純に、画面上で改行された表示にしたいということであれば、 htmlの ``` タグを使うといいと思います。 ----------------------------- ``` a b c ``` ----------------------------- という感じで、改行されて表示されると思います。 この方法でやるなら、改行コードを" "に置き換える処理はしないことになります。 少しでも手がかりになればと思い、書き込ませていただきました。 ```