2008-09-15 7 views

Répondre

0

Vous ne savez pas exactement ce que vous demandez?

Le ressort est livré avec un CustomEditorConfigurer pour fournir des chaînes personnalisées < -> Convertisseurs d'objets. Pour l'utiliser, ajoutez simplement CustomEditorConfigurer en tant que bean à votre configuration et ajoutez les convertisseurs personnalisés. Toutefois, ces convertisseurs sont généralement utilisés lors de la conversion d'attributs de chaîne dans le fichier de configuration en objets réels.

Si vous utilisez Spring MVC, alors jetez un oeil à la section sur annotated MVC

Plus précisément, jetez un oeil à la @RequestParam et les @ModelAttribute annotations?

Espérons que cela aide?

4

J'ai un contrôleur MVC avec annotations RequestMapping. Une méthode a un paramètre de type UUID. boîte à outils Merci, après avoir lu WebDataBinder, je me suis dit que je besoin d'une méthode comme ça dans mon contrôleur:

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

UUIDEditor qu'étendre PropertyEditorSupport et remplace getAsText() et setAsText().

A travaillé pour moi bien.

2

En extension à l'exemple précédent.

classe contrôleur

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

Propriété 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)) ; 
    } 

} 
Questions connexes