• 締切済み

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#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

専門家に質問してみよう