• 締切済み

java → jsp コンボボックス表示について

javaで取得したコードが 002があるとします。 DBにコード001 002 003 004 と入っているとして、 (ArrayListで取得済み デフォルトが001になる状態で表示確認済み) jspで表示させる際、selectedが002 に自動的になり、コンボボックスで表示させることは可能ですか? ※AからBへ遷移するとして 整理すれば Aの画面で 選択されたコード002 を Bの画面のコンボボックスで selected を002にする。 現在のコード <%for (int i = 0; i < CdOnlyList.size(); i++) {%> <option value="<%=CdOnlyList.get(i)%>"><%=CdOnlyList.get(i)%></option> <%}%>

noname#209802
noname#209802
  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

noname#49664
noname#49664
回答No.2

<%=request.getAttribute("s_num") == i ? "selected" : "" %> これはできないでしょう。getAttributeした値はintではありませんから、intに変換してから比較しないと。 もう少し、細かなところの動作をきちんと理解して処理するように心がけたほうがよいと思いますよ。

noname#209802
質問者

お礼

お忙しい中 回答ありがとうございます。もっと勉強してみようと思います。^^

noname#49664
noname#49664
回答No.1

>jspで表示させる際、selectedが002 に自動的になり、コンボボックスで表示させることは可能ですか? JSPに限らず、可能です。要するに、どの<option>を選択させるかをあらかじめチェックしておき、その<option>タグを出力するときに、タグ内にselectedを書き出せばいいだけです。 // int sel_num変数の<option>タグにselectedを出力する <%for (int i = 0; i < CdOnlyList.size(); i++) {%> <option value="<%=CdOnlyList.get(i)%>" <%=sel_num == i ? "selected" : "" %>><%=CdOnlyList.get(i)%></option> <%}%> 例えば、こんな感じにすれば、sel_num番目の<option>にだけselectedが書き出され、この項目が選択された状態で表示されるはずです。

noname#209802
質問者

補足

回答ありがとうございます。 java側で request.setAttribute("s_num", snum); でセットし snumには何番目かは取得できています。※int snumをセットですが、取得時はStringになっていますよね? JSP側で <%for (int i = 0; i < CdOnlyList.size(); i++) {%> <option value="<%=CdOnlyList.get(i)%>" <%=request.getAttribute("s_num") == i ? "selected" : "" %>><%=CdOnlyList.get(i)%></option> <%}%> としていますが、エラーがでます・・。 「org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: 」という内容で・・。

関連するQ&A

  • java / jsp selectedについて

    Formの<SELECT>について教えて下さい。 リストの内容はデータベースからjavaで取得し、Bという名前のArrayListに格納。それをフォームのセレクトボックスでjspで取得し表示しています。 やりたい事は、java側でAの名前でセットしたデータがBにあれば、セレクトボックスで選択した状態にしたいのですが、どうしてもうまくいきません。 以下のコードだと if (A.equals(B)) のところがおかしいようで、試しに if(A.equals("りんご"))の様にデータ名を明示的に書くとうまくいきます。 しかしそうすると今度は、セレクトボックスで"りんご"が選択された時にすべてのデータに selected が入り、セレクトボックスの最後のデータが選択状態になります。 悪いところだらけのコードのようです…。 すみませんがご教授お願い致します。 <%  //キー Aで設定したデータを取得 String A = (String)request.getAttribute("A"); %> <%  //ArrayListに入っているデータをループで取得  for (int i = 0; i < al.size(); i++) {   HashMap hash = (HashMap)(al.get(i));   String B = (String)hash.get("B"); %> <option <%   //Bの値がAと同じであれば選択状態にする。 if (A.equals(B)) { %> selected <% } %>   value = <%= (String)hash.get("B") %>><%= (String)hash.get("B") %> <% } %>

    • ベストアンサー
    • Java
  • javaでDBから取得したデータのJSP表示

    JAVAでDBから取得し ArrayList shikakuCdList = shikakuCd_Data(); request.setAttribute("shikakuCdList", shikakuCdList); JSPでコンボボックスに表示しようと思います <% ArrayList bumonlist = (ArrayList)request.getAttribute("bumonCdList");%> <% for ( int i = 0; i < bumonlist.size(); i++ ){%> <option value=" (1)ここの記述方法も  "></option> <% }%> という記述にしていますが、うまく動きません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • JSPでのリストボックス表示

    いつもお世話になっております。 サーブレット&JSPでプログラミングの勉強をしています。 JSPでリストボックスを表示させる際に、リストのアイテムをハードコーディングではなく、DBから取得したデータをArrayList等に格納し、表示させたいと思っています。 この場合、ループでArrayListのアイテムを1件ずつ取り出して、JSP内の<select><option></option></select>に当て込む方法が良いのでしょうか? ちなみに以下のテーブル内容で、リストボックスには“作業内容”を表示させて、選択されたときには、“作業コード”を取得させたいのですが、どのようにすれば良いでしょうか? テーブル -------------------- 作業コード|作業内容 -------------------- 0000000001|プログラミング 0000000002|実装 0000000003|テスト よろしくお願いします。

    • ベストアンサー
    • Java
  • エクセルでコンボボックス内に2列表示をしたい

    オプションでrowsourceに、A3:B10としたばあい、2列表示をしてほしいのです。 しかし、選択して、コンボボックスに表示するときは、A列の分だけでいいのです。 こんなことってできますか? また、コンボで選択したものが、表示されますが、別のものを選択した場合、その後ろにスペースを空けて表示するなんてことはできますか? コンボボックスで選択するものが2つ以上できたらいいと思います。

  • コンボボックスにつきまして

    JComboBoxを使って、コンボボックスを作成したいのすが、 表示は名称で、実際の値取得はコードで取りたいのですが、 可能でしょうか? 例えば、 コード  名称 001   りんご 002   ぶどう 003   パイン というデータをセットし、 コンボボックスのドロップダウンでは「りんご」を選択したときには、 「001」という値を取得したいのです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • コンボボックス

    コンボボックスから選択した内容によってそれに関するコンボボックスの内容を変えたいと思っています。 例えば コンボボックスA 書類1  分類a 書類2  分類a 書類3  分類b 書類4  分類c コンボボックスB 提出先1  分類a 提出先2  分類b 提出先3  分類b 提出先4  分類c と言う風になっているのですが、 コンボボックスAの書類1を選択したらコンボボックスB と共通の分類の提出先名がコンボボックスに表示したいのです。 書類3を選択すると、コンボボックスBには提出先2、提出先3が表示されるといった感じです。 ACCESS2000を使用しています。 よろしくお願いします。

  • ACCESS2007 コンボボックス使い方

     いつも皆様には、お世話になります。以下のようにコンボボックスを用いて絞り込みシステムを考えております。しかし、汎用例が乏しくまた、私自身初心者なので、どこをどうすればよいか分からず作業がストップしています。 ------------------------------------------------- | 絞り込みシステム |------------------------------------------------ | 勘定項目:[コンボボックスA〕 ←3項目表示    A、B、Cなど | 勘定科目コード:〔コンボボックスB〕←2項目表示 10,20 など | 分類項目:〔コンボボックスC〕←12項目      赤、青、黄,緑など | 分類コード:〔コンボボックスC〕←上記の項目、コードにより 50~1までデータ数がある。 | |                            [絞り込みボタン〕 ------------------------------------------------- 段階をおって絞り込まれた、これらのフォームから該当するデータを表示させます。 このようなことは可能でしょうか。皆様のお知恵をお借りしたいと思います。何卒よろしくお願いいたします。

  • Accessのコンボボックスの使い方について

    初心者です。 コンボボックスの使い方について教えて下さい。 商品テーブルA 商品名|コードA|コードB|コードC| マスターテーブル A|B|商品名|コードA|コードB|コードC|D|E のような2つのテーブルを作成し、マスターテーブルの「商品名」に コンボボックスで商品テーブルAの商品名を表示させるとします。 そこでコンボボックスで商品名を選択すると同時に 商品テーブルAからほかの「コードA」「コードB」「コードC」の値を マスターテーブルの「コードA」「コードB」「コードC」に入れる方法は ありますでしょうか? また、他の方法はありますでしょうか? 宜しくお願い致します。

  • コンボボックスやリストボックスの値設定

    コンボボックスやリストボックスに データベースの値で設定するときについて疑問があります。 現システムでは 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内では変数をぐるぐる回すことも考えたのですが、 コンボボックスやリストボックスの数が増えたり面倒に思います。 コンボボックスやリストボックスに値を設定する場合は どういう方法がよいのでしょうか?

    • ベストアンサー
    • Java
  • コンボボックスについて

    コンボボックスで値を入れておきそこからコンボがスタートできるようにしたいと思っています。 具体的には時間の数値をコンボボックスで用意します。 時間を取得するプログラムを入れ込み、画面が出た時点で現在の時間をコンボボックスの時間数値で選択されている格好にしたいのです。これはいつも同じ数字ではなく時間によって選択されているコンボボックスの数値が異なるという事になります。 どうかサンプルコードなどありましたら教えて下さい。 かなり苦戦しました。

専門家に質問してみよう