• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リクエストに応じたselectedの初期値設定方法)

リクエストに応じたselectedの初期値設定方法

このQ&Aのポイント
  • java servletからjspを表示する際に、setAttributeした値に応じてプルダウンの初期値に設定する方法を教えて下さい。
  • リクエストに応じたOPTIONをselectedの初期値にする方法を教えて下さい。
  • jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.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>が初期値となります。

hiroshimakun
質問者

お礼

上記の内容で正常に起動する事が出来ました! 詳細まで教えて頂き助かりました!! この様な記載の仕方も出来るんですね! ありがとうございました!!!!