質問: リクエストに応じたselectedの初期値設定方法 リクエストに応じたoptionをselectedの初期値にする方法を教えて下さい。 java servletからjspを表示する際に、 setattributeした値に応じてプルダウンの初期値に設定するにはどうしたら良いですか? 以下の様にdetail.jspに移動する前に、noをセットしています。 普通に実行したら、yesで表示されてしまいます。 jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。 例) [[[[[showdetail.java]]]]] request.setattribute("japan", "no"); request.getrequestdispatcher("/detail.jsp") .forward(request, response); [[[[detail.jsp]]]] | | | | --- | --- | | japan | yes no don't know |
回答: こんにちは。 >普通に実行したら、yesで表示されてしまいます。 >jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。 あと、カテゴリがjavascriptではなくjavaですね。 順に考えてみませんか。初期値を設定するには何が必要でしょうか。 今は何もしていないから一番上のyesが表示されています。 とする必要がありますよね。 そうしたらそれを出力するようにjspを記述すればいいわけです。 フレームワークを何も利用していなければ以下のようになると思います。 <% // 例だとjapanにnoが入っている string japan = (string)request.getattribute ( "japan" ); %> >yes >no >know 各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のが初期値となります。