2012-03-29 6 views
0

<form:select>タグを使用して編集コンテンツ.jsp内の以下のENUMを使用しようとしていますが、これを行う方法の例が見つかりません。Java ENUMの使用方法<form:select>

public class Content implements Serializable { 
    public enum Paperless { 
     NONE(null, ""), 
     EDELIVERY_RECOMMENDED("EDELIVERY_RECOMMENDED", "Recommend eDelivery"), 
     EDELIVERY_REQUIRED("EDELIVERY_REQUIRED", "Require eDelivery"), 
     EDELIVERY_REQUIRED_JUSTIFICATION("EDELIVERY_REQUIRED_JUSTIFICATION", "Require eDelivery w/out justification"); 

     private String name; 
     private String description; 
     Paperless(String name, String description) { 
      this.name = name; 
      this.description = description; 
     } 
     public String getName() { 
      return this.name; 
     } 
     public String getDescription() { 
      return this.description; 
     } 
    } 
.... 

上記コンテンツオブジェクトは${content}として私.jspファイルに渡されます。私は

<form:select path="content.Paperless"> 
    <form:options items="${content.Paperless}" itemLabel="name"/> 
</form:select> 

それは例外をスローだがやろうとしている

.... org.springframework.beans.NotReadablePropertyException: Invalid property 'content' of bean class [com.fettergroup.cmt.model.Content]: Bean property 'content' is not readable or has an invalid getter method: Does the return type of the getter match the parameter

...

私はこれについて何かを誤解していますが、私はその1を特定することはできません
+0

何Content' 'で'一覧 getPaperlessOptions() 'メソッドはどうですか?これにより、あなたのページに 'items =" $ {content.paperlessOptions} "'と書く必要があります。 – Thomas

+0

タグを使用しましたか? –

答えて

6

あなたの<form:select>パスはgetter getPaperless()を持つオブジェクトを返すgetContent()という名前のゲッターを指しています。おそらく、あなたのアクションモデルクラスでgetPaperless()を使用したかったでしょう。

は、次に列挙値のリストを表示するためにあなただけの空のオプションタグを宣言する必要があります:

<form:select path="paperless"> 
    <form:options/> 
</form:select> 
+0

残念ながら、これは動作しません: - \私は上記の同じエラーが発生しました – Webnet

+0

私は参照してください。 宣言を投稿できますか? –

+0

' ' – Webnet

0

Paperless.values()をオブジェクトとしてJSPページに渡してから、名前と説明を間接的に参照すると、望ましい結果が得られます。

0

あなたがコレクションに列挙型を変換し、モデルにそれを配置する必要があります。 これをフォームで使用します:任意のリストのように選択します。コード例:お使いのコントローラで

model.addAttribute ("paperless", Arrays.asList(Paperless .values())); 
あなたのJSPで

<form:select ... items="${paperless}" itemValue="name" itemLabel="description"/> 
関連する問題