2008-09-15 12 views
5

मुझे http अनुरोध पैरामीटर के माध्यम से एक यूयूआईडी आवृत्ति पास करने की आवश्यकता है। वसंत को एक कस्टम प्रकार कनवर्टर (स्ट्रिंग से) पंजीकृत होने की आवश्यकता होती है। मैं एक रजिस्टर कैसे करूं?मैं वसंत में कस्टम प्रकार कनवर्टर कैसे पंजीकृत करूं?

उत्तर

0

सुनिश्चित नहीं है कि आप क्या पूछ रहे हैं?

कस्टम स्ट्रिंग < -> ऑब्जेक्ट कन्वर्टर्स की आपूर्ति के लिए वसंत CustomEditorConfigurer के साथ आता है।

इसका उपयोग करने के लिए, बस कस्टम कॉन्डिटर कॉन्फ़िगरर को अपनी कॉन्फ़िगरेशन में बीन के रूप में जोड़ें, और कस्टम कन्वर्टर्स जोड़ें। हालांकि, इन कन्वर्टर्स का उपयोग आम तौर पर कॉन्फ़िगरेशन फ़ाइल में स्ट्रिंग विशेषताओं को वास्तविक वस्तुओं में कनवर्ट करते समय किया जाता है।

आप वसंत MVC का उपयोग कर रहे हैं, तो annotated MVC

विशेष रूप से संबंधित अनुभाग पर एक नज़र डालें, @RequestParam और @ModelAttribute एनोटेशन पर एक नजर है?

उम्मीद है कि इससे मदद मिलती है?

4

मैं RequestMapping एनोटेशन के साथ एक MVC नियंत्रक की है। एक विधि में यूयूआईडी प्रकार का पैरामीटर होता है। धन्यवाद टूलकिट, WebDataBinder के बारे में पढ़ने के बाद, मैं लगा मैं अपने नियंत्रक में इस तरह की एक विधि की जरूरत है कि:

@InitBinder 
public void initBinder(WebDataBinder binder) { 
    binder.registerCustomEditor(UUID.class, new UUIDEditor()); 
} 

UUIDEditor बस PropertyEditorSupport प्रदान करता है और ओवरराइड करता है getAsText() और setAsText()।

मेरे लिए अच्छी तरह से काम किया।

2

पिछले उदाहरण के विस्तार में।

नियंत्रक वर्ग

@Controller 
@RequestMapping("/showuuid.html") 
public class ShowUUIDController 
{ 

    @InitBinder 
    public void initBinder(WebDataBinder binder) 
    { 
    binder.registerCustomEditor(UUID.class, new UUIDEditor()); 
    } 

    public String showuuidHandler (@RequestParam("id") UUID id, Model model) 
    { 
    model.addAttribute ("id", id) ; 
    return "showuuid" ; 
    } 
} 

संपत्ति de-मुंगेर

class UUIDEditor extends java.beans.PropertyEditorSupport 
{ 

    @Override 
    public String getAsText() 
    { 
    UUID u = (UUID) getValue() ; 
    return u.toString() ; 
    } 

    @Override 
    public void setAsText (String s) 
    { 
    setValue (UUID.fromString (s)) ; 
    } 

}