在Spring框架中,提供了几个内置的属性编辑器,如FileEditor,ResourceEditor等。要想使用自定义属性编辑器,需要经过两个步骤。
一。定义一个自定义编辑器,可实现PropertyEditor接口或直接继承PropertyEditorSupport类。
package com.dream.editor;
import com.dream.model.photo.Photo;
import com.dream.service.standard.PhotoService;
import java.beans.PropertyEditorSupport;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 11-9-6
* Time: 下午10:10
*/
public class PhotoEditor extends PropertyEditorSupport {
private PhotoService photoService;
@Override
public String getAsText() {
Photo photo = (Photo) getValue();
return photo.getGuid();
}
@Override
public void setAsText(String text) throws IllegalArgumentException {
Photo photo = photoService.loadPhotoByGuid(text);
setValue(photo);
}
}
二。注册自定义编辑器
Spring提供了一个PropertyEditorRegistry接口和PropertyEditorRegistrySupport类来自定义一个注册器。其中PropertyEditorRegistrySupport是Spring提供的一个默认实现,里面注册了一些内置的编辑器。
可以在配置文件中注册自定义编辑器,也可以以编程的方式注册自定义编辑器。
String location = "testApplicationContext.xml";
Resource resource = new ClassPathResource(location);
XmlBeanFactory beanFactory = new XmlBeanFactory(resource);
beanFactory.registerCustomEditor(Photo.class, PhotoEditor.class);
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="com.dream.model.photo.Photo">
<ref bean="photoEditor"/>
</entry>
</map>
</property>
</bean>
<bean id="photoEditor" class="com.dream.editor.PhotoEditor">
<property name="photoService" ref="photoService"/>
</bean>
分享到:
相关推荐
在深入学习Spring框架之前,掌握基础的Java知识是至关重要的,特别是关于`PropertyEditor`的部分。`PropertyEditor`是Java中用于类型转换的关键组件,它允许我们自定义数据类型的转换规则,这对于处理用户输入或者在...
总的来说,Spring MVC的Data Binding和Validation是处理用户输入的强大工具,`Validator`提供了自定义验证逻辑的途径,而`PropertyEditor`、`Converter`和`Formatter`则帮助我们处理类型转换问题。了解并熟练运用...
2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...
在上述内容中,提到了Spring内建的多种`PropertyEditor`,例如`ByteArrayPropertyEditor`用于`String`到`byte[]`的转换,`ClassEditor`用于`String`到`Class`的转换,以及`CustomBooleanEditor`用于处理`String`到`...
此外,还包含了PropertyEditor接口,用于类型转换,以及各种实用工具类,如BeanUtils,它们提供了便捷的bean操作方法。 `org.springframework.context`模块则扩展了beans模块,提供了应用程序上下文的概念。...
4. **PropertyEditor**:Spring利用PropertyEditor来处理bean属性的类型转换,例如将字符串转换为日期或其他复杂类型。 5. **BeanPostProcessor**:这是一个接口,允许用户自定义bean实例化和初始化过程中的行为,...
在Spring框架中,属性编辑器(PropertyEditor)是一种强大的工具,允许我们自定义类型转换过程。当我们需要将字符串形式的数据转换为Java对象时,属性编辑器就发挥了关键作用。例如,从请求参数或配置文件中读取的...
实作 Validator 使用 PropertyEditor 档案上传 <br> <br>View层方案、Web框架整合 当使用JSP作为View层技术时,您可以结合JSTL以及Spring提供的标签,而除了JSP技术作为View层之外,Spring还...
1. **org.springframework.beans** 包:包含了Bean工厂和各种bean相关的类,如PropertyEditor、BeanWrapper等,用于属性设置和类型转换。 2. **org.springframework.context** 包:提供了ApplicationContext接口,...
Spring允许你通过注册自定义的`PropertyEditor`来处理自定义类型的数据绑定。这可以通过实现`PropertyEditorSupport`类并使用`@InitBinder`注解在Controller中注册。 ```java @Controller public class ...
在`spring-beans`模块中,`PropertyEditorRegistrySupport`类是`PropertyEditor`注册的核心,它负责管理一系列默认的`PropertyEditor`实例,用于处理常见的数据类型转换。 在提供的源码片段中,我们可以看到`...
4. **使用JavaBeans PropertyEditors**:PropertyEditor接口是java.beans包中提供的标准接口。PropertyEditors用于转换和设置bean属性的值,特别是在将数据从一种类型转换为另一种类型时,如从用户输入的字符串转换...
5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 ...
当Spring尝试将配置文件中的属性值注入到Bean的属性时,如果该属性类型与配置值的类型不匹配,Spring会查找合适的PropertyEditor来完成类型转换。默认情况下,Spring提供了许多内置的PropertyEditor,例如将字符串...
如果需要自定义转换,可以通过实现`org.springframework.core.convert.converter.Converter`接口或注册`PropertyEditor`实现。 5. **数据验证**: Spring MVC 集成了JSR-303/JSR-349(Bean Validation)标准,允许...
当我们尝试将字符串或者其他非基本类型的数据赋值给一个JavaBean的属性时,Spring会查找合适的`PropertyEditor`来完成转换。这个过程在`BeanWrapperImpl`中通过`PropertyEditor`的`setAsText()`方法实现。 在深入...