- ベストアンサー
"\n"を"<br>"にうまく変換できません
Strutsを使用したWebページを作成しています。 ユーザーが投稿した内容を表示する際に、"\n"を"<br>"に変換することで、<pre>タグを使わずに改行させたいのですが、うまくいきません。 現在、以下の方法で行っています。 /* アクションクラス(一部抜粋) */ dynabeen=(DynaBeenForm)form; dynabeen.set("contents",[表示したい内容].replaceAll("\n","<BR>")); /* 表示するJSPファイル(一部抜粋) */ <tr> <td><bean:write name="アクションビーン名" property="contents"/></td> </tr> この方法で行うと、JSPに"<BR>"がそのまま表示されてしまうのです。HTMLソースを見ると、ご丁寧に"<BR>"に変換されています。 どうすれば<BR>タグをそのまま出力できるのでしょうか? アドバイスを宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
bean:writeでfilter="false"では?
その他の回答 (1)
- arukamun
- ベストアンサー率35% (842/2394)
こんにちは ユーザーが投稿した内容とはHTMLタグを吹くんでいるんですね。 更に、そのタグはHTMLのタグとして働かずに文字として表示させたい。 更に、投稿内容の改行コードを<BR>タグとして働かしたいという事でしょうか。 まず、<と>を<と>に変換しますね。 次に改行コードですが、使われるクライアントによって、コードが変わってきてしまうのではないでしょうか。 単純に\nだけでは無く、\r\n、\n\r、\rになる事も考えられます。 \r\nを<BR>に \n\rを<BR>に \rを<BR>に \nを<BR>といった様に考えられそうな組み合わせすべてを変換してみてはいかがですか。
お礼
>ユーザーが投稿した内容とはHTMLタグを吹くんでいるんですね。 >更に、そのタグはHTMLのタグとして働かずに文字として表示させたい。 >更に、投稿内容の改行コードを<BR>タグとして働かしたいという事でしょうか。 まさにその通りです。 ただ、replaceAll関数によって改行を<BR>に変換することはできるのですが、JSPに"アンパサンドlt;BRアンパサンドgt;"として送られてしまい、"<BR>"がそのまま表示されてしまうのです。 ("アンパサンドlt;BRアンパサンドgt;"と入力して質問を投稿したら"<BR>"として表示されてしまいました。) >単純に\nだけでは無く、\r\n、\n\r、\rになる事も考えられます。 なるほど。それは知りませんでした。 ご丁寧なアドバイスどうも有難うございました。
お礼
filter="false"であっさりできました。 大変助かりました。 どうも有難うございました。