4

複数選択で列挙型のリストをバインドするにはどうすればよいですか?

これが私のクラスプロパティです(ゲッター/セッターを使用):

private List<Color> colors;

そして、ここに私のjspがあります:

<form:select id="colors" path="colors" multiple="true">
  <form:option value="" label="..."/>
  <form:options items="${Color.values}" />
</form:select>

空であるため、列挙値を配列として取得できませんでした。

読んでくれてありがとう。

4

2 に答える 2

6

${Color.values}静的Color.values()メソッドを呼び出すと考えているようです。それは正しくありません。

Java EE 7 (Tomcat 8) より前では、JSP EL で静的メソッドはサポートされていません。${Color.values}という名前の属性を検索し、見つかった場合は、このオブジェクトColorを呼び出します。getValues()どのスコープにもそのようなオブジェクトがないため、選択ボックスにはオプションがありません。

必要なことを行うにはColor.values()、Spring コントローラーから呼び出して、たとえばallColors属性名の下などでモデルに追加します。次に使用します

<form:options items="${allColors}" />

あなたのJSPで

Java EE 7 を使用している場合は、JSP に Color クラスをインポートして、${Color.values()}.

于 2013-12-03T21:06:09.580 に答える