У меня есть контроллер MVC с аннотациями RequestMapping. Один метод имеет параметр типа UUID. Спасибо инструментарий, после чтения о WebDataBinder, я полагал, что мне нужен метод как это в моем контроллере:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(UUID.class, new UUIDEditor());
}
UUIDEditor просто расширяет PropertyEditorSupport и переопределяет getAsText () и setAsText ().
Работавший для меня приятно.
См. главу 5 пружинного справочника здесь: 5.4.2.1. Регистрация дополнительного пользовательского PropertyEditors
Не уверенный, что Вы спрашиваете?
Spring идет с CustomEditorConfigurer для предоставления пользовательской строки <-> Объектные преобразователи.
Для использования этого просто добавьте CustomEditorConfigurer как боб к конфигурации и добавьте пользовательские преобразователи. Однако эти преобразователи обычно используются при преобразовании строковых атрибутов в файле конфигурации в реальные объекты.
Если Вы используете Spring MVC, то смотрите на раздел по аннотируемому MVC
А именно, взгляните на @RequestParam и @ModelAttribute аннотации?
Надеюсь, это поможет?
Расширение к предыдущему примеру.
Класс контроллера
@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" ;
}
}
Удаление свойств
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)) ;
}
}