2008-09-15 7 views

Antwort

0

Nicht sicher, was Sie fragen?

Der Frühling kommt mit einem CustomEditorConfigurer, um benutzerdefinierte Zeichenfolge < -> Objektkonverter zu liefern.

Um dies zu verwenden, fügen Sie den CustomEditorConfigurer als Bean zu Ihrer Konfiguration hinzu und fügen Sie die benutzerdefinierten Konverter hinzu. Diese Konverter werden jedoch normalerweise verwendet, wenn String-Attribute in der Konfigurationsdatei in reale Objekte konvertiert werden.

Wenn Sie Spring MVC verwenden, dann nehmen Sie einen Blick auf den Abschnitt über annotated MVC

Insbesondere haben einen Blick auf die @RequestParam und den @ModelAttribute Anmerkungen?

Hoffe das hilft?

4

Ich habe eine MVC-Controller mit RequestMapping Anmerkungen. Eine Methode hat einen Parameter vom Typ UUID. Dank Toolkit, nach etwa WebDataBinder lesen, dachte ich, dass ich eine Methode, wie dies in meinem Controller benötigen:

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

UUIDEditor einfach erweitert PropertyEditorSupport und überschreibt getAsText() und setAsText().

Arbeitete für mich nett.

2

In Erweiterung zu dem vorherigen Beispiel.

Controller-Klasse

@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" ; 
    } 
} 

Property de-munger

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)) ; 
    } 

}