3

私は列挙セットを持っています

public enum MyEnum {

    A("AND"), //
    I("INTER");
}

AND と INTER As I want を設定する jsp ページに spring form:select がありますが、フォームを送信しているときに例外がスローされ、文字列 AND を列挙型 Status にマップできません。

私のコントローラー:

model.addAttribute("list",MyEnum.values);

**

しかし、列挙型を変更して OR("ÖR") のような値をもう 1 つ追加すると機能します。UI から OR を選択すると、データベースに適切に保存されますが、A または I では機能しません。

**

注:この質問への反対票は、質問を注意深く読んでいないことを意味します。私はすでにstackoverflowで検索しました。:)

4

2 に答える 2

5

回答していただきありがとうございますが、これに対処する方法を見つけました。

<form:options items="${mList}" itemLabel="name" />

次の方法でスプリング フォーム オプションを使用し、itemValue フィールドを指定しないでください。スプリングが自動的に行います。:)

于 2013-06-06T05:14:23.427 に答える
2

春が列挙型を選択オプションに変換すると、列挙型のtoStringメソッドが使用され、それをオーバーライドしたため、「AND」が返されA、「INTER」が返されると思いますI。選択したオプションを列挙型に変換するときに、おそらく使用しますvalueOfが、よくわかりません。
いずれにしても、enum を String に変換し、enum に正しく変換する独自のフォーマッタをこのフィールドに実装するようにしてください。この記事を確認してください: http://bthurley.wordpress.com/2012/10/25/enum-translations-in-spring-mvc/

于 2013-06-05T16:23:30.120 に答える