我是靠谱客的博主 矮小雪糕,最近开发中收集的这篇文章主要介绍propertyeditor java_Spring MVC类型转换:PropertyEditor还是Converter?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我正在寻找在Spring MVC中绑定和转换数据的最简单方法。如果可能,不进行任何xml配置。

到目前为止,我一直在像这样使用PropertyEditors:

public class CategoryEditor extends PropertyEditorSupport {

// Converts a String to a Category (when submitting form)

@Override

public void setAsText(String text) {

Category c = new Category(text);

this.setValue(c);

}

// Converts a Category to a String (when displaying form)

@Override

public String getAsText() {

Category c = (Category) this.getValue();

return c.getName();

}

}

...

public class MyController {

@InitBinder

public void initBinder(WebDataBinder binder) {

binder.registerCustomEditor(Category.class, new CategoryEditor());

}

...

}

很简单:两个转换都在同一个类中定义,并且绑定很简单。如果我想在所有控制器之间进行常规绑定,则仍可以在xml config中添加3行。

但是Spring 3.x引入了一种使用Converters的新方法:

在Spring容器中,此系统可用作PropertyEditors的替代方案

假设我要使用Converters,因为它是“最新的替代方案”。我将不得不创建两个转换器:

public class StringToCategory implements Converter {

@Override

public Category convert(String source) {

Category c = new Category(source);

return c;

}

}

public class CategoryToString implements Converter {

@Override

public String convert(Category source) {

return source.getName();

}

}

第一个缺点:我必须上两节课。好处:由于通用性而无需强制转换。

然后,如何简单地将数据绑定到转换器?

第二个缺点:我没有找到在控制器中执行此操作的任何简单方法(注释或其他编程工具):像someSpringObject.registerCustomConverter(...);。

我发现的唯一方法将是乏味的,不简单的,并且仅关于常规的跨控制器绑定:

XML配置:

class="org.springframework.context.support.ConversionServiceFactoryBean">

Java配置(仅在Spring 3.1+中):

@EnableWebMvc

@Configuration

public class WebConfig extends WebMvcConfigurerAdapter {

@Override

protected void addFormatters(FormatterRegistry registry) {

registry.addConverter(new StringToCategory());

registry.addConverter(new CategoryToString());

}

}

有所有这些缺点,为什么要使用Converters?我想念什么吗?还有其他我不知道的技巧吗?

我很想继续使用PropertyEditors …绑定更加容易和快捷。

最后

以上就是矮小雪糕为你收集整理的propertyeditor java_Spring MVC类型转换:PropertyEditor还是Converter?的全部内容,希望文章能够帮你解决propertyeditor java_Spring MVC类型转换:PropertyEditor还是Converter?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(25)

评论列表共有 0 条评论

立即
投稿
返回
顶部