- - PR -
データベースの値をJSPに表示したい(struts)
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-06-11 11:08
はじめまして
JAVAを独学で始めて一か月の者です。 現在Webアプリケーションを作ろうとしている最中、理解に苦しむ内容があり苦しんでおります。 同じような内容の投稿や記事はあるのは分かっているのですが、どうしても理解することができません。 ご協力よろしくお願いいたします。 やりたいこと: mysqlにある2列のデータをstruts:logic:iterateでJSPに表示する アクション: 〜 Connection con = getConnection(); Statement smt = con.createStatement(); ResultSet rs = smt.executeQuery("select * from test"); List list = new ArrayList(); while(rs.next()){ resultForm re = new resultForm(); re.setTitle(rs.getString("title")); re.setContent(rs.getString("content")); list.add(re); req.setAttribute("resultForm", re); } 〜 ----------------------------------------------------------- アクションフォーム 〜 private String title; private String content; public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } 〜 ----------------------------------------------------------- 出力先JSP 〜 <logic:iterate id="id" name="resultForm" scope="request" > <bean:write name="id" property="title" /> <bean:write name="id" property="content" /> </logic:iterate> 〜 ----------------------------------------------------------- エラー 〜 javax.servlet.ServletException: このコレクションに対するイテレータは生成できません 〜 ----------------------------------------------------------- 疑問点 @アクションフォームでlistに値を格納して、フォームをrequestにsetして、JSPでフォームから値を出そうとする。本やWebでこうやっているのでマネてますが、わざわざlistにしたんだから、listをsetして、getしなくていいのかなと疑問 Aアクションでフォーム型からlist型にしていますが、フォームの存在意義が疑問 投稿内容やマナーに不備がございましたら、申し訳ございません。 よろしくお願い致します。 [ メッセージ編集済み 編集者: まろにえ 編集日時 2007-06-11 11:16 ] | ||||||||
|
投稿日時: 2007-06-11 11:40
リストを取得する処理は、Logicタグライブラリ <logic:iterate id="id" name="resultForm" scope="request" > の部分で、リストの中身を一つ一つ取り出す処理を行っているので、裏側でgetされている 形になっています。
フォームの存在意義 1. クライアントから入力された情報をまとめて扱いやすくする 2. 後々、入力データチェック(バリデーション)という処理を試すことがあると 思いますが、その際にバリデーション処理を適用する単位がフォーム単位だったり します > JAVAを独学で始めて一か月の者です。 学習方法は様々だとは思いますが、初期段階ではWeb絡みの仕様が絡んだ物を 題材にするよりも、Java言語仕様などをしっかり理解された方が良いと思いますよ。 がんばってください。 | ||||||||
|
投稿日時: 2007-06-11 11:56
>リストを取得する処理は、Logicタグライブラリ
> <logic:iterate id="id" name="resultForm" scope="request" > >の部分で、リストの中身を一つ一つ取り出す処理を行っているので、裏側でgetされてい>る >形になっています。 この説明でイメージができて、理解が深まりました。 それを元に下のように変更したら、エラーも解消されました。 req.setAttribute("resultForm", re); ↓ req.setAttribute("resultForm", list); >学習方法は様々だとは思いますが、初期段階ではWeb絡みの仕様が絡んだ物を >題材にするよりも、Java言語仕様などをしっかり理解された方が良いと思いますよ。 >がんばってください。 Webアプリケーションが最終目的だったので、Web関係の文献を読みあさっていましたが、Java言語仕様も積極的に勉強していこうと思います。 ご協力ありがとうございました。 |
1