首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Spring中注册自定义类型转换器?

如何在Spring中注册自定义类型转换器?
EN

Stack Overflow用户
提问于 2008-09-15 23:38:35
回答 4查看 13.5K关注 0票数 5

我需要通过http请求参数传递一个UUID实例。Spring需要注册一个自定义类型转换器(从字符串)。我如何注册一个?

EN

回答 4

Stack Overflow用户

发布于 2008-09-16 01:11:31

请参阅spring参考手册的第5章:5.4.2.1. Registering additional custom PropertyEditors

票数 4
EN

Stack Overflow用户

发布于 2008-09-16 04:07:29

我有一个带有RequestMapping注释的MVC控制器。一个方法有一个UUID类型的参数。谢谢工具包,在阅读了WebDataBinder之后,我想我需要在我的控制器中有一个这样的方法:

代码语言:javascript
复制
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(UUID.class, new UUIDEditor());
}

UUIDEditor简单地扩展了PropertyEditorSupport并覆盖了getAsText()和setAsText()。

对我来说很有效。

票数 4
EN

Stack Overflow用户

发布于 2009-10-12 15:02:23

是对上一个例子的扩展。

控制器类

代码语言:javascript
复制
@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" ;
  }
}

财产清除器

代码语言:javascript
复制
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)) ;
  }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档