`
LHacker
  • 浏览: 4654 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

spring 强大的PropertyEditor

阅读更多

    今天看了一下spring的Data Binding,觉得挺强大,记录一下,以免忘记。

 

public class User{

private String name;

private Son son;

public Son getSon() {

return son;

}

public void setSon(Son son) {

this.son = son;

}

 

}

 

 

public class Son{

private String name;

public Son(){}

public Son(String name) {

this.name = name;

}

 

}

 

 

<bean id="user" class="com.lhacker.domain.User">

<property name="name" value="Dylan" />

<property name="son" value="Dylan的儿子"/>

</bean>

 

 

不需要配置son的bean,只需要以上的一个配置,spring就会初始化Son,并把“Dylan的儿子"根据Son的有参构造函数,把值绑定在name属性中。

 

 

还可以定义自己的TypeEditor,继承java提供的PropertyEditorSuppor.

 

public class ExoticTypeEditor extends PropertyEditorSupport {

 

@Override

public void setAsText(String text) throws IllegalArgumentException {

setValue(new Son(text.toUpperCase()));

}

 

}

 

 

 

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer"> 

<property name="customEditors"> <map> <entry key="com.lhacker.domain.Son" 

value="com.lhacker.controller.util.ExoticTypeEditor" /> </map> </property> 

</bean>

 

 

这样,就可以将Son的name属性值绑定为"DYLAN的儿子"。

 

还有另一种方式

 

public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {

 

@Override

public void registerCustomEditors(PropertyEditorRegistry registry) {

registry.registerCustomEditor(Son.class, new ExoticTypeEditor());

}

 

}

 

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">

<property name="propertyEditorRegistrars">

<list>

<ref bean="customPropertyEditorRegistrar" />

</list>

</property>

</bean>

 

<bean id="customPropertyEditorRegistrar" class="com.lhacker.controller.util.CustomPropertyEditorRegistrar" />

 

 

分享到:
评论

相关推荐

    学习Spring必学的Java基础知识(3)—PropertyEditor

    - `ConversionService`:Spring 3.0引入了`ConversionService`,这是一个更强大的类型转换系统,它可以取代简单的`PropertyEditor`,支持更多的转换规则和类型安全的转换。 5. **PropertyEditor与国际化** - 在...

    Spring Framework 3.0.0.4

    4. **PropertyEditor**:Spring利用PropertyEditor来处理bean属性的类型转换,例如将字符串转换为日期或其他复杂类型。 5. **BeanPostProcessor**:这是一个接口,允许用户自定义bean实例化和初始化过程中的行为,...

    Spring-Reference_zh_CN(Spring中文参考手册)

    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 切面的...

    最新spring3.0 源码(一)

    Spring框架是Java开发中的核心组件,它为构建可维护、可扩展的应用程序提供了强大的支持。Spring 3.0是该框架的一个重要版本,引入了许多新特性和改进,以适应不断发展的企业级应用需求。本篇将详细介绍Spring 3.0...

    spring_FrameWork3.0

    - **Spring 表达式语言(SPEL):** SPEL 是一种强大的表达式语言,可以在运行时查询和操作对象图。 - **控制反转容器的增强:** Spring 3.0 对容器进行了改进,提供了更丰富的配置选项。 - **通用的类型转换和数据...

    SPRING中文开发参考手册

    - **企业级应用开发**:Spring 为复杂的业务逻辑提供了简单而强大的支持,如事务管理、消息队列集成等。 - **Web开发**:Spring MVC 模块提供了构建 Web 应用的强大支持。 - **移动应用开发**:虽然主要应用于后端...

    SpringMVC之DataBinding和Validation--Validator,PropertyEditor,Converter,Formatter

    总的来说,Spring MVC的Data Binding和Validation是处理用户输入的强大工具,`Validator`提供了自定义验证逻辑的途径,而`PropertyEditor`、`Converter`和`Formatter`则帮助我们处理类型转换问题。了解并熟练运用...

    spring 自定义属性编辑器

    在Spring框架中,属性编辑器(PropertyEditor)是一种强大的工具,允许我们自定义类型转换过程。当我们需要将字符串形式的数据转换为Java对象时,属性编辑器就发挥了关键作用。例如,从请求参数或配置文件中读取的...

    spring数据格式转换

    在上述内容中,提到了Spring内建的多种`PropertyEditor`,例如`ByteArrayPropertyEditor`用于`String`到`byte[]`的转换,`ClassEditor`用于`String`到`Class`的转换,以及`CustomBooleanEditor`用于处理`String`到`...

    开源框架 Spring Gossip

    实作 Validator 使用 PropertyEditor 档案上传 &lt;br&gt; &lt;br&gt;View层方案、Web框架整合 当使用JSP作为View层技术时,您可以结合JSTL以及Spring提供的标签,而除了JSP技术作为View层之外,Spring还...

    Spring 2.0学习文档 和Spring API文档

    在Java企业级开发中,Spring框架以其卓越的灵活性、模块化和强大的功能深受开发者喜爱。本资料包包含了Spring 2.0的学习文档和API文档,旨在帮助开发者快速掌握Spring的核心概念和实际应用。 一、Spring 2.0学习...

    Spring 2.5 基于注解驱动的Spring MVC

    Spring允许你通过注册自定义的`PropertyEditor`来处理自定义类型的数据绑定。这可以通过实现`PropertyEditorSupport`类并使用`@InitBinder`注解在Controller中注册。 ```java @Controller public class ...

    详细的Spring配置和Spring Boot-外文翻译

    总的来说,Spring框架提供了强大的bean管理和服务,而Spring Boot则进一步提高了开发效率,让开发者更专注于业务逻辑。理解并熟练运用这些概念和工具,对于进行高效、健壮的Java应用开发至关重要。在实际应用中,...

    Spring 2.0 开发参考手册

    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 MVC数据绑定大全

    Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。在Spring MVC中,数据绑定是一项核心功能,它允许开发者将用户输入的数据与控制器中的对象属性进行关联,简化了数据处理的复杂性。...

    spring2.0(三) 自定义属性编辑器

    2. 当需要处理复杂转换时,考虑使用`Converter`或`ConverterFactory`,它们在Spring 3.0之后被引入,提供了更强大的转换能力。 3. 为了代码的可读性和可维护性,确保在应用中正确注册和使用属性编辑器,避免过度依赖...

    spring数据绑定.docx

    Spring提供了强大的数据绑定功能,这主要依赖于其对`PropertyEditor`的支持。 在Spring中,`PropertyEditor`是用于转换不同数据类型的关键组件。`PropertyEditor`接口是Java Bean规范的一部分,Spring扩展了这一...

    Spring中文帮助文档

    5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明...

Global site tag (gtag.js) - Google Analytics