2010-08-13 18 views
8

टाइप वस्तु में enum संपत्ति है।EMB को radiobutton से कैसे बांधें?

jsp:

<form:radiobutton path="type" value="Male" /> 

जावा:

public enum TestType 
{ 
    Male, Female; 
} 

और त्रुटि

प्रकार से परिवर्तित करने के लिए मूल्य 'नर' 'java.lang.String' टाइप करने में असमर्थ 'जावा मिला .lang.Enum '; कारण =

+0

मेरी गलती। प्रकार _Enum टाइप_ मैं _TestType टाइप_ में बदल गया और यह ठीक है! – Alexander

उत्तर

0

शायद, आदेश वस्तु की type संपत्ति Enum बजाय TestType रूप decalred है 'java.lang.Enum नहीं एक enum प्रकार है'?

4

Do रूप

public enum TestType { 

    MAN("Man"), 
    FEMALE("Female"); 

    private String description; 

    private TestType(String description) { 
     this.description = description; 
    } 

    public String getValue() { 
     return name(); 
    } 

    public void setValue(String value) {} 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

} 

इस प्रकार है और एक कस्टम बांधने की मशीन के रूप में रजिस्टर

dataBinder.registerCustomEditor(TestType.class, new PropertyEditorSupport() { 
     @Override 
     public void setAsText(String value) throws IllegalArgumentException { 
      if(StringUtils.isBlank(value)) 
       return; 

      setValue(TestType.valueOf(value)); 
     } 

     @Override 
     public String getAsText() { 
      if(getValue() == null) 
       return ""; 

      return ((TestType) getValue()).name(); 
     } 
    }); 

फिर

<form:radiobuttons path="type" items="${testTypeList}" itemLabel="description"/> 

रूप

model.addAttribute(TestType.values()); 
इस प्रकार आप अपने TestType की स्थापना इस प्रकार है
+1

इस समाधान एक शॉट में मेरे लिए काम किया ... केवल, वसंत 3.0 के लिए बदलने से itemLabel संपत्ति को दूर harshit

+0

@harshit लेकिन कैसे आप itemlabel निर्दिष्ट करते हैं, उपरोक्त विधि मेरे लिए काम नहीं करता है ... ? – NimChimpsky

7

किसी भी कस्टम बाइंडिंग की आवश्यकता के बिना spring forum पर एक आसान समाधान मिल सकता है।

+1

इसके बजाय इसे स्वीकार किया जाना चाहिए। – arthur

संबंधित मुद्दे