- ベストアンサー
リクエストに応じたselectedの初期値設定方法
- java servletからjspを表示する際に、setAttributeした値に応じてプルダウンの初期値に設定する方法を教えて下さい。
- リクエストに応じたOPTIONをselectedの初期値にする方法を教えて下さい。
- jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >普通に実行したら、YESで表示されてしまいます。 >jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。 あと、カテゴリがJavaScriptではなくJavaですね。 順に考えてみませんか。初期値を設定するには何が必要でしょうか。 今は何もしていないから一番上のYESが表示されています。 <option value="NO" selected="selected">とする必要がありますよね。 そうしたらそれを出力するようにJSPを記述すればいいわけです。 フレームワークを何も利用していなければ以下のようになると思います。 <% // 例だとjapanにNOが入っている String japan = (String)request.getAttribute ( "JAPAN" ); %> <select> <option value="YES"<%= "YES".equals(japan) ? " selected=\"selected\"" : ""; %>>YES</option> <option value="NO"<%= "NO".equals(japan) ? " selected=\"selected\"" : ""; %>>NO</option> <option value="KNOW"<%= "KNOW".equals(japan) ? " selected=\"selected\"" : ""; %>>KNOW</option> </select> 各optionでどの文字列が入っているかによってselected="selected"を出力すれば良いです。 <%= "YES".equals(japan) ? " selected=\"selected\"" : ""; %> 上の記述は if ( "YES".equals(japan) ) { out.write ( " selected=\"selected\""); } else { out.write ( "" ); } と同義です。 ようするにjapanにYESが入ってきたらselected="selected"を出力することにより初期選択項目とする。 NOが入ってくれば"YES".equals(japan)には該当しないので無出力、次の"NO".equals(japan)で該当するのでNOの<option>が初期値となります。
お礼
上記の内容で正常に起動する事が出来ました! 詳細まで教えて頂き助かりました!! この様な記載の仕方も出来るんですね! ありがとうございました!!!!