コンボボックスやリストボックスに
データベースの値で設定するときについて疑問があります。

現システムでは
JSP内でsqlタグを使ってレコードセットを取得し
<core:forEach>でぐるぐるまわして値をセットしています。
↓こんな感じです。
-----------------------------------------------------------
<sql:setDataSource var="db" dataSource="jdbc/xxxxx" />
<sql:query var="rs" dataSource="${db}" >
SELECT * FROM XXXXX
</sql:query>
<select name="xxxxx">
<c:forEach var="row" items="${rs.rows}" >
<option value="${row['xxxxx']}"
<c:if test="${row['xxxxx'] == requestScope.xxxxx}" > selected </c:if>
>${fn:escapeXml(row['xxxxx'])}</option>
</c:forEach>
</select>
-----------------------------------------------------------

これでもちゃんと動いてるのですがMVCを考えるとJSP内でDB接続って疑問に感じます。

Sevletでコンボボックスに必要な値を取得しておいてリクエスト属性にセットし
JSP内では変数をぐるぐる回すことも考えたのですが、
コンボボックスやリストボックスの数が増えたり面倒に思います。

コンボボックスやリストボックスに値を設定する場合は
どういう方法がよいのでしょうか?

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

A 回答 (2件)

>今回はStrutsを使えません。


>その場合は!?
ちょっと言葉足らずでしたね。
----前回の回答--------------
DAOからSQLの結果のデータセットを返して、
Servletでデータセットをリクエストにセットして、
JSPでリクエストからデータセットを使用するのが普通?なのかな。
----前回の回答--------------
とStrutsは別です。

ちょっと細かく書くと…
DBとやりとりするクラスから、SQLの処理結果を、たとえばHashMapとかにセットして、Servletに返します。
Servletはリクエストやセッションに上記HashMapなどをセットしてレスポンスを返します。
で、JSPではリクエストorセッションからHashMapなどを取得して、そこからSQLの処理結果を取得→表示する。
こんな感じが普通だと(少なくとも自分は)思っています。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速ソース変更しました!!!

お礼日時:2005/04/14 13:16

DAOからSQLの結果のデータセットを返して、


Servletでデータセットをリクエストにセットして、
JSPでリクエストからデータセットを使用するのが普通?なのかな。

Strutsを勉強してみるといいと思います。

この回答への補足

今回はStrutsを使えません。
その場合は!?

補足日時:2005/04/14 11:51
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

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

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

QJSPでタグでの selected 状態にするには・・・。

実は簡単なのかもしれないですが・・・。
変なとこで躓いています。

<SELECT>タグで15個の<OPTION>が入っているとします。
12番目の<OPTION>のやつをHTMLでいうところのselected状態にするにはどうしてやればいいですか?

宜しくお願いいたします。

Aベストアンサー

JavaScriptからselect要素の中の特定のoptionを選択状態にしたい場合は、

document.form名.select名.options[番号].selected= true;

でいけると思います。
ご質問のケースでは、12番目の要素を選択させると言うことですので、option要素の12番目を指定する意味で

document.form名.select名.options[11].selected= true;

とすれば良いと思います。 JavaScriptでも自動的に取得される要素の配列の連番は0から始まるので、12番目の要素を持つ配列の番号は11になることに気をつければ、問題ないでしょう。

参考になれば…


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

人気Q&Aランキング

おすすめ情報