アプリ版:「スタンプのみでお礼する」機能のリリースについて

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>
<%}%>

A 回答 (2件)

<%=request.getAttribute("s_num") == i ? "selected" : "" %>



これはできないでしょう。getAttributeした値はintではありませんから、intに変換してから比較しないと。
もう少し、細かなところの動作をきちんと理解して処理するように心がけたほうがよいと思いますよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/12 10:49

>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が書き出され、この項目が選択された状態で表示されるはずです。

この回答への補足

回答ありがとうございます。

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のクラスをコンパイルできません:
」という内容で・・。

補足日時:2007/09/10 15:03
    • good
    • 0

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