質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

解決済

1回答

11763閲覧

Java(Spring)でプルダウンメニューの選択状態の設定ができません

programmer010

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2017/05/23 02:56

編集2017/05/23 02:58

下記のソースで、始めはControllerのnameListをList<String>にしていたのですが、
プルダウンメニューに同じ値が2つある場合にどちらも選択状態になって、
後の方が優先されてしまい、期待通りの動作になりませんでした。
ですので、Mapに変更してみたのですが、Controllerで
form.setName(nameList.get(1)); のように記述しても選択状態が設定できません。

いろいろ調べておりますが、解決策が見つからず困っております。
もしおわかりの方がおられましたら、ご教授いただけると幸いです。

何卒、よろしくお願い申し上げます。

<環境>
言語:Java
フレームワーク:Spring
IDE:Eclipse

<参考サイト>
http://blog.codebook-10000.com/entry/20140114/1389625482

###ソースコード
■Form

Java

1 private String name; 2 3 public String getName() { 4 return name; 5 } 6 7 public void setName(String name) { 8 this.name = name; 9 }

■Controller

Java

1 Map<Integer, String> nameList = new HashMap<>(); 2 nameList.put(0, "2017/04/30:Cさん"); 3 nameList.put(1, "2017/04/30:Dさん"); 4 nameList.put(2, "2017/04/30:Cさん"); 5 nameList.put(3, "2017/03/31:Bさん"); 6 nameList.put(4, "2017/02/28:Aさん"); 7 model.addAttribute("nameList", nameList); 8 form.setName(nameList.get(1));

■JSP

Java

1 <form:select path="name"> 2 <form:options items="${nameList}"/> 3 </form:select>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Selectボックスを作るところは特に問題ないのですが、Mapの値を指定するのではなく、キーを指定すると選択済み状態になるかと思います。

form.setName(1)

※なのでNameはStringではなく、Integerになるかと。
※手元に検証環境がないので試せていませんが。

投稿2017/05/23 06:34

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

programmer010

2017/05/23 07:14

ご回答の通りに修正すると、期待通りの動作になりました!! いろいろ調べても全然わかりませんでしたので、非常に助かりました。 本当にありがとうございました。
A-pZ

2017/05/23 08:20

d(・ω・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問