
いつもお世話になっております。
サーブレット&JSPでプログラミングの勉強をしています。
JSPでリストボックスを表示させる際に、リストのアイテムをハードコーディングではなく、DBから取得したデータをArrayList等に格納し、表示させたいと思っています。
この場合、ループでArrayListのアイテムを1件ずつ取り出して、JSP内の<select><option></option></select>に当て込む方法が良いのでしょうか?
ちなみに以下のテーブル内容で、リストボックスには“作業内容”を表示させて、選択されたときには、“作業コード”を取得させたいのですが、どのようにすれば良いでしょうか?
テーブル
--------------------
作業コード|作業内容
--------------------
0000000001|プログラミング
0000000002|実装
0000000003|テスト
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
<select>
<option value="0000000001">プログラミング</option>
<option value="0000000002">実装</option>
<option value="0000000003">テスト</option>
</select>
↑こういう状態を作れば、見た目には内容が、値には番号が入ります。
あとは単純にぐるぐるまわせばいいだけですね。
<select name=hoge>
<%for(i=0;i<arrayA.length();i++){%>
<option value="<%=arrayA[i]>">arrayB[i]</option>
<%}%>
</select>
スクリプトで
form.hoge[i].value = <%=arrayA[i]%>;
form.hoge[i].text = <%=arrayB[i]%>;
とかで埋め込むこともできます。
内容を書き換えたりすることがあるのなら、スクリプトを併用したほうが良いですね。
ryou0607さん、ご回答ありがとうございます。
上の例はとてもよく分かりました。
スクリプトのほうは、残念ながらよく分かりませんでした。
No.4
- 回答日時:
>>そのあとtempに“プログラミング”を代入してループを抜ける
そのとおりです。一般的には、ループを抜けたあとに最後の文字列をもう一度関数A()に渡しますね。
No.3
- 回答日時:
valueの値がServletに渡されるので、Servletで処理すればよいです。
<option value="0000000001,プログラミング">プログラミング</option>
↑これが選択されているときにsubmit()された場合、request.getParameter("hoge")の内容は"0000000001,プログラミング"になります。様々な情報をカンマで区切って格納して送信することはよくありますよ。
受け取ったServlet内で
int index = 0;
String temp = request.getParameter("hoge");
while(temp.indexOf(",")!=-1){
index=temp.indexOf(",");
関数A(temp.substring(0,index));
temp=temp.substring(index+1,temp.length());
}
で、関数Aにカンマ区切りの文字列を次々と渡したり。
どんな文字列でも送信することはできるので、あとはServletの処理しだいです。色々やってみてください。
ただ、Servlet/JSPを動かすときはJScriptを使う場合が多い(今のところ使わないシステムに出会ったことがない)ですので、JScript・html・Servlet/JSPの連携はできるようになっておいた方が良いです。
丁寧な解説ありがとうございます。
サンプルの内容だとwhileの中で、関数Aに“0000000001”を引数として渡して、
そのあとtempに“プログラミング”を代入してループを抜ける
という理解で合っていますでしょうか?
No.2
- 回答日時:
おそらく、JavaではなくJScriptの方がわからないってことですよね。
Java(JSPスクリプト)記述部において
arrayAの中身が{01,02,03}
arrayBの中身が{プログラミング、実装、テスト}
だとすると、
function func(){
form.hoge.length = 0;
<%for(i=0;i<arrayA.length();i++){%>
form.hoge[<%=i%>].value = '<%=arrayA[i]%>';
form.hoge[<%=i%>].text = '<%=arrayB[i]%>';
<%}%>
}
↑ここから生成されるhtmlは
function func(){
form.hoge.length = 0;
form.hoge[0].value = '01';
form.hoge[0].text = 'プログラミング';
form.hoge[1].value = '02';
form.hoge[1].text = '実装';
form.hoge[2].value = '03';
form.hoge[2].text = 'テスト';
}
↑こうなります。
form.hoge.length = 0;の部分でselectを初期化して、
valueに値を、textに表示文字列を埋め込んでいます。
body.onload時などにこういった関数を呼ぶこともありますし、別フレームに対して値を飛ばすときなどに重宝します。
ryou0607さん、ありがとうございます。
現在、JavaScriptには触れずにサーブレット&JSPを学んでいるため、せっかく詳しい説明をして頂いたのに中々理解できません。
もう少し勉強してからJavaScriptも手を付けたいと思います。
もうひとつ疑問が出てきました。
見た目には内容、そして値には番号と内容の両方を入れて、値を取得したらsubstringメソッドで
分割してそれぞれ使用しようと思っているのですが、これって大丈夫な方法なんでしょうか?
何度もすみません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
JSPで<SELECT>の中にDBから持ってきたデータを反映させたい
Java
-
プルダウンで選択すると、DBの値を取得したい
JavaScript
-
プルダウンメニューにDBの内容を表示させる
PHP
-
-
4
リクエストに応じたselectedの初期値設定方法
Java
-
5
JSPの処理の途中で、JavaScriptの処理をしたい
JavaScript
-
6
javaでDBから取得したデータのJSP表示
Java
-
7
JSP内でString型からint型に変換する方法(SAStruts使用)
Java
-
8
JSPのクラスをコンパイルできない問題
Java
-
9
オブジェクトの中のプロパティを認識できません
Java
-
10
Java-jspの画面入力値保持について
Java
-
11
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
12
GROUP BYを行った後に結合したい。
Oracle
-
13
JSPでのArrayListの表示について困っています
Java
-
14
jspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?
Java
-
15
jspからjavascriptの変数引継ぎ
JavaScript
-
16
StrutsでJSPからListを受け取りたい
Java
-
17
jsp~jspにhiddenを使って変数を飛ばしたい
JavaScript
-
18
<s:iterator>の値をリストで取得したい
Java
-
19
[HTML]プルダウンメニューの横幅固定について
HTML・CSS
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「<c:forEach タグが終了し...
-
フォーム上で押されたボタンに...
-
JSPでのリストボックス表示
-
リクエストに応じたselectedの...
-
javaでDBから取得したデータのJ...
-
java フレームワーク:spring e...
-
ラジオボタンの選択肢をサーブ...
-
テキストボックスへの値の代入...
-
Strutsでの質問になります。
-
int型の内容をbyteの配列にコピー
-
JSPとサーブレット間での画面遷...
-
ログイン時でセッションでのユ...
-
入力候補を選択した時点でDBを...
-
JSP+Servletで終了ボタン
-
jspファイルで注文フォームの合...
-
JSPでのサブミット判定
-
JAVA JSPにてSQL UPDATE文が実...
-
Iterateタグ内で複数のリスト要...
-
Servletへフォームから配列を送...
-
Struts2のタグについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォーム上で押されたボタンに...
-
リクエストに応じたselectedの...
-
「<c:forEach タグが終了し...
-
JSPでのリストボックス表示
-
ラジオボタンの選択肢をサーブ...
-
フォームで同じ複数のnameで違...
-
JSPでのサブミット判定
-
EL式 true falseを表示
-
jspファイルで注文フォームの合...
-
int型の内容をbyteの配列にコピー
-
Strutsで、どのRadioボタンが選...
-
formでテキストとファイルタイ...
-
javaでDBから取得したデータのJ...
-
JSPでテキストボックスのループ...
-
動的に作成したラジオボタンの...
-
checkboxについて
-
strutsを使用したjspでjavascri...
-
antについての質問です
-
jspとservlet、sqlの連携でform...
-
jspでjavascript関数へ引数を渡...
おすすめ情報