コンボボックスやリストボックスに
データベースの値で設定するときについて疑問があります。
現システムでは
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内では変数をぐるぐる回すことも考えたのですが、
コンボボックスやリストボックスの数が増えたり面倒に思います。
コンボボックスやリストボックスに値を設定する場合は
どういう方法がよいのでしょうか?
No.1
- 回答日時:
DAOからSQLの結果のデータセットを返して、
Servletでデータセットをリクエストにセットして、
JSPでリクエストからデータセットを使用するのが普通?なのかな。
Strutsを勉強してみるといいと思います。
No.2ベストアンサー
- 回答日時:
>今回はStrutsを使えません。
>その場合は!?
ちょっと言葉足らずでしたね。
----前回の回答--------------
DAOからSQLの結果のデータセットを返して、
Servletでデータセットをリクエストにセットして、
JSPでリクエストからデータセットを使用するのが普通?なのかな。
----前回の回答--------------
とStrutsは別です。
ちょっと細かく書くと…
DBとやりとりするクラスから、SQLの処理結果を、たとえばHashMapとかにセットして、Servletに返します。
Servletはリクエストやセッションに上記HashMapなどをセットしてレスポンスを返します。
で、JSPではリクエストorセッションからHashMapなどを取得して、そこからSQLの処理結果を取得→表示する。
こんな感じが普通だと(少なくとも自分は)思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPSpreadsheetを使って関数を繰り返し埋め込みたい 1 2023/05/24 11:33
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- JavaScript gasについて 1 2022/05/31 21:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このプログラミング誰か教えて...
-
このプログラミング誰か教えて...
-
BCD形式で時刻を!
-
ダブルクォーテーションを含む...
-
ArrayListの要素数の上限
-
Evaluate()に文字列の形式の数...
-
wsprintf関数の使い方について
-
matchesを否定文として使う方法...
-
getParameterの値変更
-
ResultSetの内部構造(Java)
-
C# LinqでDateTime型の値を取得
-
Javaの問題なのですが、「3文字...
-
DOSバッチで変数の値を変数名に...
-
線形合同法(乗算型)による乱...
-
ダブルクォーテーションとシン...
-
偶数ビットだけと奇数ビットだ...
-
String型の値が大文字か小文字...
-
indexOf("Internet Explorer")!...
-
DateTimePickerに値を入れたい...
-
String str = "a\\\\b\\\\c";
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
wsprintf関数の使い方について
-
javaのCSVデータ読込についてです
-
ArrayListの要素数の上限
-
特定の文字列を複数抜き出した...
-
Stringクラスの変数の格納アド...
-
結合した文字列をファイル名に...
-
BCD形式で時刻を!
-
DateTimePickerに値を入れたい...
-
Evaluate()に文字列の形式の数...
-
実行シェルからCOBOLへパラメー...
-
hiddenの値を消したくない!
-
DOSバッチで変数の値を変数名に...
-
C言語の変数(LSB)の合わせ込...
-
excel vba 時間計算と条件分岐...
-
Javaの問題なのですが、「3文字...
-
matchesを否定文として使う方法...
-
8桁整数を限りなく短い文字列に...
-
JSPでの計算結果表示
-
指定した日付が何日前なのかを...
おすすめ情報