アプリ版:「スタンプのみでお礼する」機能のリリースについて

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>タグをそのまま出力できるのでしょうか?
アドバイスを宜しくお願いします。

A 回答 (2件)

bean:writeでfilter="false"では?



参考URL:http://www.jajakarta.org/struts/struts1.0/ja/tar …
    • good
    • 0
この回答へのお礼

filter="false"であっさりできました。
大変助かりました。
どうも有難うございました。

お礼日時:2003/06/16 17:56

こんにちは



ユーザーが投稿した内容とはHTMLタグを吹くんでいるんですね。
更に、そのタグはHTMLのタグとして働かずに文字として表示させたい。
更に、投稿内容の改行コードを<BR>タグとして働かしたいという事でしょうか。

まず、<と>を&lt;と&gt;に変換しますね。

次に改行コードですが、使われるクライアントによって、コードが変わってきてしまうのではないでしょうか。
単純に\nだけでは無く、\r\n、\n\r、\rになる事も考えられます。
\r\nを<BR>に
\n\rを<BR>に
\rを<BR>に
\nを<BR>といった様に考えられそうな組み合わせすべてを変換してみてはいかがですか。
    • good
    • 0
この回答へのお礼

>ユーザーが投稿した内容とはHTMLタグを吹くんでいるんですね。
>更に、そのタグはHTMLのタグとして働かずに文字として表示させたい。
>更に、投稿内容の改行コードを<BR>タグとして働かしたいという事でしょうか。

まさにその通りです。
ただ、replaceAll関数によって改行を<BR>に変換することはできるのですが、JSPに"アンパサンドlt;BRアンパサンドgt;"として送られてしまい、"<BR>"がそのまま表示されてしまうのです。
("アンパサンドlt;BRアンパサンドgt;"と入力して質問を投稿したら"<BR>"として表示されてしまいました。)

>単純に\nだけでは無く、\r\n、\n\r、\rになる事も考えられます。

なるほど。それは知りませんでした。
ご丁寧なアドバイスどうも有難うございました。

お礼日時:2003/06/16 18:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!