- PR -

ArrayListの使用のしかた

投稿者投稿内容
VC-3000
会議室デビュー日: 2006/03/14
投稿数: 9
投稿日時: 2006-03-14 13:40
今Webアプリケーションを開発しているんですが、Form上で入力されたデータを入力チェックを行いエラーが発生したらもとのJSPの画面に戻しエラー文を表示させたいのですがその方法がわかりません。

/****ソース***/
//コントロールクラス
ArrayaList error = new ArrayList();
UserInfoBean form = new UserInfoBean();
form.setId(req.getParameter("id"),error);

//Beanクラス
private String id_ = "";
public String getId() {
return id_;
}
public void setId(String id,ArrayList error) {
IdPassCheckBean.validateId(id,error);
this.id_ = id;
}

//入力チェッククラス
//エラーがあったら
error.add("○○○○○");

//コントロールクラス(エラーがあった場合)
req.setAttribute("error",error);
cont = getServletContext();
rd = cont.getRequestDispatcher("/UserAddInfo.jsp");
rd.forward(req, res);

入力フォーム側ではどんな記述をしたらいいのかわかりません。
是非教えてください。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-03-14 14:17
・JSP内でrequestにセットされているオブジェクトを取得する方法
・ArrayList内に列挙されているメッセージを取得する方法
・メッセージをJSPで表示する方法
のうちどれがわかりませんか?
VC-3000
会議室デビュー日: 2006/03/14
投稿数: 9
投稿日時: 2006-03-14 17:10
・JSP内でrequestにセットされているオブジェクトを取得する方法
・ArrayList内に列挙されているメッセージを取得する方法
が分かりません。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2006-03-14 17:45
コード:
req.setAttribute("error",error);


であれば、
コード:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="error" class="java.util.ArrayList" scope="request" />
<c:forEach items="${error}" var="message">
  <c:out value="${message}" />
</c:forEach>


ってな感じじゃないでしょうか。
動かしたわけじゃないので、ミスってるかもしれませんが。
n.w
大ベテラン
会議室デビュー日: 2003/07/15
投稿数: 126
お住まい・勤務地: 神奈川
投稿日時: 2006-03-14 18:09
[サーバー側
ArrayList list = new ArrayList();
list.add("3");
list.add("2");
list.add("1");
req.setAttribute("error", list);

[JSP]
ArrayList list= (ArrayList) request.getAttribute("error");
ではどうですか?

値取得はどちらでもとれますがどちらが標準的な使い方なのか。。。
何か使い分ける意味などありましたらフォロー願います(識者の方)

// (その1)----------------------------------
Iterator it = list.iterator();
while(it.hasNext()) {
 System.out.println((String) it.next());
}
// (その2)----------------------------------
for(int i=0; i<list.size(); i++){
System.out.println((String) list.get(i));
}

※ 後半、よこやりになってしまいもうしわけないです
VC-3000
会議室デビュー日: 2006/03/14
投稿数: 9
投稿日時: 2006-03-16 14:21
ご返答ありがとうございます。

無事JSPに表示できました。

*****コード*****
<jsp:useBean id="error" class="java.util.ArrayList" scope="request"/>
<%
for(int i=0; i < error.size(); i++){
String str = (String) error.get( i );
out.println( i + ":" + str + "\n" + "\n");
}
%>

と記入しました。

しかし、表示はできたものの改行されなくずらーっと表示されています。
そのためにout.println( i + ":" + str + "\n" + "\n");の"\n"と追加したのですが
これではできませんでした。

何かいい方法はありませんか?
想馬
大ベテラン
会議室デビュー日: 2003/05/29
投稿数: 245
お住まい・勤務地: 神奈川・東京
投稿日時: 2006-03-16 14:39
JSPは知りませんが、HTMLで改行するなら<p>〜</p>か<br />じゃないですか?
tanabo
常連さん
会議室デビュー日: 2003/04/24
投稿数: 34
投稿日時: 2006-03-16 14:40

jspなので、"\n"ではなく"<br/>"を挿入すればいいと思います。

スキルアップ/キャリアアップ(JOB@IT)