人生最悪の忘れ物

urizakaです。
さて現在、Tomcat+PostgreSQL+JavaでDBから持ってきたデータを
一度TEXTAREAに代入し、そこでデータの修正を行った後に、その修正
データを次の画面で表示するというプログラムを組んでいるのですが、
このTEXTAREAで入力したデータが、次の画面での表示の際にうまく
改行してくれません(改行なしで表示されます)。Tomcat上ではうまく
改行されて表示されているのですが・・・。
 いったいどうすれば、Web画面上でもうまく改行してくれるのでしょう?
「ソースコード(最初のページ)」
(前略)
<form name="form2" method="post" action="MContConf.jsp">
<p><font size="3"><b><font size="5">[改定]</font></b></font><BR>
<BR><TEXTAREA NAME="Cont2" ROWS="20" COLS="100" WRAP="hard">
 <%=mcont%></TEXTAREA></p>
<input type="submit" name="submit" value="上記フォームで送信">
</form>
(後略)

「ソースコード(次の画面)」
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=EUC-JP">
<%@ page contentType="text/html; charset=EUC_JP" %>
<%@ page import="BasisBean,java.util.*" %>
<jsp:useBean id="Basisbean" class="BasisBean">
<% //↓文字化け対策
String Content = Basisbean.cSet(request.getParameter("Cont2"));
//↓これでTomcatに表示させると、Tomcat上では改行して表示する
System.out.println("answer : " + Content);
%>
<html><body bgcolor="#FFFFFF" text="#000000">
<p align="center"><b>以下のような内容で送信します。</b></p>
<p><b><font size="4"><%=Content%></font></b></p></body>
</jsp:useBean></html>
Java環境はJ2SDK1.4です。
すみませんが、ご存知の方、よろしくお願いします。

A 回答 (3件)

申し訳有りません。

自己レスです

>もしWindowsならばcrlfなので\r\nとなります。
>ですので\rのみ変換しても改行されてしまうと思われますがどうでしょう??
>replaceはchar単位での変換なのでindexOf等を使い変換ロジックを組んで
>見ればどうでしょうか??

replaceで変換されているのは\nでしたね。申し訳ありません。
ですが、replaceではchar単位での変換となるので、"<br>"という
文字列は変換できません。やはりindexOfを使うしかないと思います。
    • good
    • 3
この回答へのお礼

urizakaです

解決しました。
convachanさんの言うとおりreplaceメソッドで必死にやろうとしたことが
原因のようです。
で、実はreplaceAllという便利なメソッドがありまして、

Content = Content.replaceAll("\n","<BR>");

これで解決しました。
変数の命名の件はしりませんでした、ちょっと勉強して以後のプログラミング
で役立てたいと思います。
それでは。

お礼日時:2002/09/03 17:24

>ちなみに「\n」を<BR>とReplaceするという方法はだめでした・・・


結論から言うとurizakaさんのコーディングにミスが有るのでしょう。

>かわりにちゃんとTomcat上では改行されて表示されています
Tomcatとはいったい何をさすのかわかりませんが、JAVAのコンソールで
改行されているのであれば間違いなく改行文字は含まれているはずです。
それとOSはなんでしょうか??もしWindowsならばcrlfなので\r\nとなります。
ですので\rのみ変換しても改行されてしまうと思われますがどうでしょう??
replaceはchar単位での変換なのでindexOf等を使い変換ロジックを組んで見ればどうでしょうか??

それと、余談なのですが、変数名にContents等のように頭一文字にに大文字
を使用するのは好まれません。これは他の言語でも共通の一般認識です。
一度よく他の方のコーディングや、言語仕様書などによく目を通されてみると
いいと思います。
    • good
    • 2

改行は<br>です。

この回答への補足

説明が悪かったようです。

確かにHTMLで改行するのは<BR>で、せめてTEXTAREAからString変数に入れた
値に改行することを示す「\n」とでも入っていればreplaceメソッドを使って
<BR> と変更するのですが、Tomcatで見る限り、そのような表示もされて
いません(かわりにちゃんとTomcat上では改行されて表示されています)。
 これは、表示こそされていないけれども、実際には何か改行コードが入って
いるのでしょうか?。もしそうだとしたら、どのような値が入っている
のでしょうか?
 ちなみに「\n」を<BR>とReplaceするという方法はだめでした・・・

よろしくお願いします。

補足日時:2002/09/03 09:15
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報