ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:bmbmbm テキストエリアの表示文字
困り度:
  • すぐに回答を!
result の中身を以下のようにして、テキストエリアで表示させようと思いました。
結果は、表示はされるのですが、データとデータの間に数行の改行が入って表示されてしまいます。
<c:forEach item="${result}">
<textarea><c:out value="${result}"></textarea>
</c:forEach>

<textarea>、<c:out value="${result}">、</textarea>の位置を変えたりしてみたのですが、結果は同じでした。

同じ方法で、セレクトボックスには改行なく期待通りに表示されたので、テキストエリアでもできると思ったのですが・・・

アドバイスよろしくお願いします。
質問投稿日時:08/03/26 10:51
質問番号:3895680
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:auty ・ <textarea>の外枠は見えていますか?

・ 単純なことから確認していきましょう。

<textarea>
<c:forEach var="plan" items="${result['vacation']}" varStatus="st">
<c:if test = "${plan['ID']=='101'}">
${st.index}:【ABC】
</c:if>
</c:forEach>
</textarea>
を試してみてください。どんな結果でしょう。

・ 次は、
${st.current}: 【ABC】


・ いよいよ

<textarea>
<c:forEach var="plan" items="${result['vacation']}">
<c:if test = "${plan['ID']=='101'}">
<c:out value="${plan['PLACE']}"/> 【】
</c:if>
</c:forEach>



<textarea>
<c:forEach var="plan" items="${result['vacation']}">
<c:if test = "${plan['ID']=='101'}">
【<c:out value="${plan['DATE']}"/>】
</c:if>
</c:forEach>

を少しずつ試しましょう。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/03/27 03:33
回答番号:No.5
この回答へのお礼提案していただいたものを試した結果、やはりデータ自体には問題がなさそうでしたが、あいかわらず表示が変なままでした。
どんなものを出力させても、表示される構造が変わらなかったので、やはり<textarea>、表示文字、</textarea>の位置の問題かと思い、色々試してみたらうまくいきました。

<textarea>、表示文字、を同じ行につらつらつなげて書き、閉じタグだけをまとめて次の行につらつら書きました。(閉じタグの行のインデントは0にして…)↓
<textarea><c:forEach var="plan" items="${result['vacation']}"><c:if test = "${plan['ID']=='101'}"><c:out value="${plan['PLACE']}"/>【<c:out value="${plan['DATE']}"/>】
</c:if></c:forEach></textarea>

あきらめて、他の方法を考えようかと思っていましたが、こちらで質問をして、autyさんにお返事いただけて本当によかったと思っています。
ありがとうございました。
こういう場所での質問、実は苦手だったのですが(そんなこともわからないのか、ときつい言葉をもらって終わりだという先入観がありました)、これを機にまた質問をさせていただくことがあるかもしれません。ご縁があれば、またよろしくお願いいたします。

回答

 

回答者:auty <textarea>
<c:forEach var="plan" items="${result['vacation']}">
<c:if test = "${plan['ID']=='101'}">
<c:out value="${plan['PLACE']}"/> 【<c:out value="${plan['DATE']}"/>】
</c:if>
</c:forEach>
</textarea>
を試してみてください。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/03/26 15:27
回答番号:No.4
この回答への補足リアルタイムのアドバイスありがたいです。
心より感謝いたします。

アドバイスを試してみましたが・・・
******* 現状 **********
resultの1つ目の項目:値1-1resultの2つ目の項目:【値2-1】


resultの1つ目の項目:値1-2resultの2つ目の項目:【値2-2】


resultの1つ目の項目:値1-3resultの2つ目の項目:【値2-3】

******* アドバイス適用後 **********



resultの1つ目の項目:値1-1resultの2つ目の項目:【値2-1】


resultの1つ目の項目:値1-2resultの2つ目の項目:【値2-2】


resultの1つ目の項目:値1-3resultの2つ目の項目:【値2-3】


です。
始めのデータの前にも改行が入るようになりました。
別の出力方法を考えた方がいいのでしょうか?
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:auty 実際にコードを示してもらえますか。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/03/26 13:53
回答番号:No.3
この回答への補足実際のコードです。

<c:forEach var="plan" items="${result['vacation']}">
<c:if test = "${plan['ID']=='101'}">
<textarea><c:out value="${plan['PLACE']}"/> 【<c:out value="${plan['DATE']}"/>】</textarea>
</c:if>
</c:forEach>

よろしくお願いします。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:auty 確かめていませんが、ひょっとして

<textarea>
<c:forEach var="rec" items="${result}">
<c:out value="${rec}">
</c:forEach>
</textarea>

の様な形が正解ではありませんか。
必要なら改行も加える。
<c:out value='${rec+"\n"}'>
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/03/26 12:56
回答番号:No.2
この回答への補足すみません。
先ほどの補足が間違っていましたので、この場で訂正させていただきたいと思います。
******* 期待している形 **********
resultの1つ目の項目:値1-1resultの2つ目の項目:【値2-1】
resultの1つ目の項目:値1-2resultの2つ目の項目:【値2-2】
resultの1つ目の項目:値1-3resultの2つ目の項目:【値2-3】

******* 現状 **********
resultの1つ目の項目:値1-1resultの2つ目の項目:【値2-1】



resultの1つ目の項目:値1-2resultの2つ目の項目:【値2-2】



resultの1つ目の項目:値1-3resultの2つ目の項目:【値2-3】

です。

実際はご指摘のとおり、var属性指定しています。
以前これがなくてもやれた経験があった気がしたので、質問内容を簡潔にしたかったため、省略したつもりでした。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:auty ${result}の中に改行文字が含まれているのでは。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/03/26 11:09
回答番号:No.1
この回答への補足アドバイスありがとうございます。
質問の補足をさせていただこうと思います。

正確には
<c:forEach item="${result}">
<textarea>resultの1つ目の項目:<c:out value="${result['item1']}"/>resultの2つ目の項目:【<c:out value="${result['item2']}"/>】
</c:forEach>

のようなコードです。

ご指摘の通り、resultの中身に改行があるとすれば、【】の位置もずれてくると思うのですが、【】はきちんと表示されています。

******* 期待している形 **********
resultの1つ目の項目:値1
resultの2つ目の項目:【値2】

******* 現状 **********
resultの1つ目の項目:値1



resultの2つ目の項目:【値2】
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示良回答のみ表示