マルシェル新規登録で5000円分当たる

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です。
すみませんが、ご存知の方、よろしくお願いします。

このQ&Aに関連する最新のQ&A

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に関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qtextareaで入力した文字を改行したままで表示したいのですが。

textareaに複数行で入力した文字を改行したままで表示したいのですが
改行されずに表示されます。
改行したままで表示するのはどうすればいいでしょうか?

<HTML>
<HEAD>
<STYLE type="text/css">
<!--
INPUT {font-size: 12px;}
-->
</STYLE>
<SCRIPT language="JavaScript">
<!--
function check(){
var strName;
strName = document.nform.textN.value;
var test = document.getElementById("test");
test.innerHTML = strName;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM name="nform" >
<textarea cols="30" rows="10" name="textN"></textarea>
<input type="button" value=" 確認 " onClick="check()">
</FORM>
<DIV id="test" style="position:absolute;font-size:24px;">
</DIV>
</BODY>
</HTML>

textareaに複数行で入力した文字を改行したままで表示したいのですが
改行されずに表示されます。
改行したままで表示するのはどうすればいいでしょうか?

<HTML>
<HEAD>
<STYLE type="text/css">
<!--
INPUT {font-size: 12px;}
-->
</STYLE>
<SCRIPT language="JavaScript">
<!--
function check(){
var strName;
strName = document.nform.textN.value;
var test = document.getElementById("test");
test.innerHTML = strName;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM name="nform" ...続きを読む

Aベストアンサー

function check(){
var strName;
strName = document.nform.textN.value;
var test = document.getElementById("test");
//一応タグを使えないように置き換える
strName = strName.split("<").join("&lt;");
strName = strName.split(">").join("&gt;");
//改行を改行タグに置き換える
strName = strName.split("\n").join("<br>");
test.innerHTML = strName;
}

Qテキストエリアに入力した改行コードを保持したい

テキストエリアにコメントを入力して、その内容をDBに保存し、別ページで表示させる入力ページの作成で、フォーム内に
・テキストエリアを設置
・その下に「プレビュー」ボタンを設置
・その下にプレビューが表示されるエリアを設置
・一番下にsubmitボタンを設置

test1.phpにて
<form name ="form1" method="post" action="test2.php">
<table>
<tr><td>
<text area name ="comment" id ="comment">
</textarea>
</td></tr>
<tr><td>
<a href="javascript:void(0);" onclick="preview_comment(); ">
<img src="preview.jpg">
</a>
</td></tr>
<tr><td>
<span id="preview_comment">
プレビュー
</span>
</td></tr>
</table>
<div><input type="submit" value ="submit"></div>
</form>


head部分に
<script language="JavaScript">
<!--
function preview_comment()
{var comment_details=document.getElementById("comment").value;
document.getElementById("preview_comment").innerHTML=comment_details;
}
//-->
</script>

を設置しました。
テキストエリアにコメントを入力し、改行がある場合はその改行コードを保持した状態がプレビューとして表示され、確認をしてOKだったらSubmit、という処理を考えているのですが、改行コードがなくなってしまいます。

改行コードを維持したままプレビューエリアにコメントを表示させることはできますでしょうか?
どこを修正すればいいか教えて下さい。

テキストエリアにコメントを入力して、その内容をDBに保存し、別ページで表示させる入力ページの作成で、フォーム内に
・テキストエリアを設置
・その下に「プレビュー」ボタンを設置
・その下にプレビューが表示されるエリアを設置
・一番下にsubmitボタンを設置

test1.phpにて
<form name ="form1" method="post" action="test2.php">
<table>
<tr><td>
<text area name ="comment" id ="comment">
</textarea>
</td></tr>
<tr><td>
<a href="javascript:void(0);" onclick="preview_comment(); ">
<img src="p...続きを読む

Aベストアンサー

横からですが、

>上記ですと改行コードが入っていない状態とプレビュー表示が変わりません。
ブラウザによって改行コードが違うことがあるので、\nだけで判断するようにしてあげればよいのでは?

comment_details=comment_details.replace(/\n/g,"<br />").replace(/\r/g,"");

Qjsp 改行コードで改行させて表示したい

はじめまして。

PostgreSQLから読み込んだ文字列データを表示させるtomcat+struts+servlet/jspを作成中です。
データの文字列に含まれる改行が、クライアントに表示された際に反映されず困っています。

過去ログも調べ、近い質問はありましたが、僕とは内容が微妙に違うようで、改めて質問させていただきました。


例えば、あるテーブルのある項目に、
A
B
C
というデータ(A,Bそれぞれの後に改行のある3行の文字列)があるとします。

これを読み込みaction form bean(と言うのですか?setter/getterを定義する関数です)を介してjspに埋め込むと、できあがるhtmlでは、
ABC
と改行されずに表示されます。

htmlで改行させるには「<BR>」が必要なのかと、データ文字列に0x0dや0x0a、または0x0d+0x0aがあれば「<BR>」に置き換えてaction form bean(?)のsetterに渡してjspを作ると、今度は、
A<BR>B<BR>C
と「<BR>」が文字列として表示されます。
htmlをソース表示すると、「A&lt;BR&gt;B&lt;BR&gt;C」で、親切にも「<」「>」をそれぞれ「&lt;」「&gt;」に勝手に置き換えあくまで文字列として表示してくれるようです。

試しに改行コードを「&lt;BR&gt;」に置き換えても予想通りその部分は
&lt;BR&gt;
とそのまま表示され、そのソースは「&amp;lt;BR&amp;gt;」でした。

「<」や「&lt;」等をそれぞれ「&lt;」「&amp;lt;」のように置き換える作業は、どこが行っているのでしょうか。
また、改行位置で改行させるにはどうすればよろしいでしょう。
OSはwindowsXPです。

無知ゆえに、つまらないことで悪戦苦闘しているのかも知れませんが、経験も浅くてよく解りません。

宜しくお願い致します。

はじめまして。

PostgreSQLから読み込んだ文字列データを表示させるtomcat+struts+servlet/jspを作成中です。
データの文字列に含まれる改行が、クライアントに表示された際に反映されず困っています。

過去ログも調べ、近い質問はありましたが、僕とは内容が微妙に違うようで、改めて質問させていただきました。


例えば、あるテーブルのある項目に、
A
B
C
というデータ(A,Bそれぞれの後に改行のある3行の文字列)があるとします。

これを読み込みaction form bean(と言うのですか?setter/...続きを読む

Aベストアンサー

私も経験が浅いので、分からない部分が多いのですが、

"<"や">"を置き換えるという機能は、
Javaというより、strutsが提供している機能らしいです。

"<"や">"を置き換える機能を持たせないと、
ユーザーが何かフォーマットに入力するときに、
JavaScriptを書き込んで、
例えば、alertを出し続けるようないたずらができてしまうので、
そういうことを防ぐために、変換機能を持っているのだと思います。
(具体的にどのタイミングで変換しているかは分からないのですが・・・)

単純に、画面上で改行された表示にしたいということであれば、
HTMLの<pre>タグを使うといいと思います。

-----------------------------
<pre>
A
B
C
</pre>
-----------------------------
という感じで、改行されて表示されると思います。
この方法でやるなら、改行コードを"<BR>"に置き換える処理はしないことになります。

少しでも手がかりになればと思い、書き込ませていただきました。

私も経験が浅いので、分からない部分が多いのですが、

"<"や">"を置き換えるという機能は、
Javaというより、strutsが提供している機能らしいです。

"<"や">"を置き換える機能を持たせないと、
ユーザーが何かフォーマットに入力するときに、
JavaScriptを書き込んで、
例えば、alertを出し続けるようないたずらができてしまうので、
そういうことを防ぐために、変換機能を持っているのだと思います。
(具体的にどのタイミングで変換しているかは分からないのですが・・・)

単純に、画面上で改行...続きを読む

Q[Javascript]TEXTAREAで改行させるには?

こんにちは。
name="memo" となっている TEXTAREA があるとします。

document.myForm.memo.value = "aaa";
としましたら aaa が TEXTAREA に表示されます。

今回は・・・
aaa
bbb
というように、間に改行を入れて表示させたいと考えています。

"aaa" と "bbb" の間に改行のコマンド的なものを挟めばいいとは思うのですが・・・

わかりません・・・宜しくお願い致します。

Aベストアンサー

こんにちは

document.myForm.memo.value = "aaa\nbbb";
とすれば良いです。
\nは改行コードです。

ご確認ください。

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

QMySQLで改行を含む文の登録のしかた(改行コード

MySQLで改行を含む文を登録したいんですが、改行を改行コードに書き換えて登録したいです。
改行コードはどのように書けばいいですか?

登録したい文:
あいうえお
かきくけこ
さしすせそ

Aベストアンサー

改行コードは¥nで登録すれば良いです。

Qデータベースにデータを挿入する場合の改行コードについて

お世話になっております。
データベースにデータを挿入する場合、サーバのOSの改行コードに改行コードを合わせてデータを挿入する方が良い、という事を聞きました。

これというのは、
例えば、WindowsやMACなどからHTMLフォームを通してLINUX上で動作するPHPプログラムで、データベースへデータを挿入する処理を書く場合"\r\n"や "\r" といった改行コードを"\n"に変換する処理を通してからデータベースに挿入した方が良いという事なのでしょうか?

要領を得ない質問で申し訳ありません。
本人に聞く事が出来れば良いのですが、それもかなわないので、お分かりの方がいらっしゃいましたらお返事いただけたら嬉しいです。

Aベストアンサー

結局、様々なOSから入力された改行付き文字列をひとつのデータベースにINSERTする場合に、
後でまとめて出力する際、改行コードがまちまちになってしまって困るということはあると思います。
Windowsで、改行が\rのみだった場合、改行されません。

出力が簡単になる、CSVなどの形式でダンプしたときに都合がいいようにするには、改行コードを合わせたほうが良いと思います。

<?php

$comment = $_POST['comment']; //入力された値があったとして

$comment = str_replace(array("\r\n", "\r", "\n"), "\n", $comment);

?>

こんな感じで。

Q改行できる・できない入力ボックスの違いとは??

しょしんしゃです。
自サイトの感想フォームの入力ボックスをつくっています。

よくある「一行掲示板」みたいに、
一行のみのゲストブックとして使いたいのですが、
入力ボックス(縦の幅は1行分)の中で改行ができてしまうため、
ちょう長い、改行たっぷりのメッセージがきてしまいます。

1行しか入力できないボックスはどのように記述するのですか?
入力文字数に制限は必要ありませんが、改行させたくありません。

アドバイスください。><

Aベストアンサー

1列の幅にすると見た目は同じですが、「inputタグのtext」と「textarea」の違いではないでしょうか?

分かりやすく言いますと、たとえばここ教えてgooで回答しようとした時の「回答内容」を書くところはtextarea。
こちらは改行可能。部品の右側にスクロールバーが出ます。
記述方法は以下の通り
<textarea></textarea>
閉じタグで閉じる必要があります。


参考URLを書くところはinputタグのtextで、改行不可能です。
<input type="text">
こちらについては閉じタグはありません。


書き方についてはとても分かりやすいのが「とほほのWWW入門」さんです。
私はhtmlやjavascript、CSSなどについても趣味の延長でずいぶん色々やってみたものですが、ここが抜群に分かりやすくていつまでもお世話になりましたので、是非見てみてください。

参考URL:http://www.tohoho-web.com/www.htm

Q改行コードの置換が…

改行コード"\n"を<BR>に変換したいです。

String strMessage = "1行目\n2行目\n3行目";
strMessage.replaceAll("\n","<BR>" );

と記述したのですが、上手く置換できませんでした。
どうも"\n"が認識されないようなのですが、どのように記述すればいいのでしょうか?

Aベストアンサー

質問にあるプログラム片であるなら、

import java.lang.*;
public class Moge {
public static void main(String[] args) {
String strMessage = "1行目\n2行目\n3行目";
String strReplaced = strMessage.replaceAll("\n","<BR>" );

System.out.println("strMessage = " + strMessage);
System.out.println("strReplaced = " + strReplaced);
}
}

strMessage = 1行目
2行目
3行目
strReplaced = 1行目<BR>2行目<BR>3行目

と正しく動いていますけど?
なにか別の条件があったりしませんか?

Qテーブル内の文字列を改行させたい

<TABLE border="1">
<tr> <TD>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</TD>
</tr>
</TABLE>

これを、ある一定の幅を指定して改行させたいのですが、
CSSを使おうが使わず指定しようが、反映されません。
全角文字だと反映されます。

IE6、IE7で対応させたいと思っています。

CSSでも何でも良いので、どうすれば対応出来るのか
ご教示下さい。

Aベストアンサー

英数半角文字だと、続けて入力した場合、一つの単語とみなして禁則処理をしてしまうんだと思います。
なので、<br>で改行するのがいいのかと思いますが、
IEで対応したいということなので、IE7で動作するかはわかりませんが、
word-break:break-all;
の指示で単語の切れ目を無視して改行してくれると思います。

参考URL:http://www.htmq.com/style/word-break.shtml


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング