在很多框架里面, 我们需要将一个字符串转换成对应的对象, 如在spring的bean配置文件中, 将字符串转换成Integer, Double, Date日期, jdk提供的常见的几种属性转换如下图:
用法如下:
DoubleEditor doubleEditor = new DoubleEditor(); doubleEditor.setAsText("12.12"); Double d = (Double)doubleEditor.getValue(); System.out.println(d);
主要步骤:
1、根据类型转换需要, 创建对应的属性转换器
2、调用setAsText()方法, 参数为需要转换的字符串,
3、调用getValue获取转换后的对象
自定义属性编辑器的步骤:
1、自定义属性编辑器类继承PropertyEditorSupport
2、重写setAsTest方法, 在方法中创建需要转换的对象,并使用重写方法的参数,给创建的对象属性设值, 并setValue(创建的对象)
<!--EndFragment-->
除了jdk提供的几种属性转换器, 如:将一个字符串, 转换成自定义的User对象,
//字符串转换后的User对象 public class User { private String userName; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } } //User属性编辑器, 需要继承PropertyEditorSupport, 重写setAsTest方法 public class UserPropertyEditor extends PropertyEditorSupport{ @Override public void setAsText(String text) throws IllegalArgumentException { String[] args = text.split(","); User user = new User(); user.setUserName(args[0]); user.setAge(Integer.parseInt(args[1])); setValue(user); } } //测试类 public class Demo { @Test public void testPropertyEditor() { UserPropertyEditor editor = new UserPropertyEditor(); editor.setAsText("wan,30"); User user = (User) editor.getValue(); System.out.println(user.getUserName() + "," + user.getAge()); } }
相关推荐
首先,我们需要为每个属性创建合适的`PropertyDescriptor`,然后找到对应的`PropertyEditor`,并使用`PropertyDescriptor`的`setValue()`方法将Map中的值设置到对应的属性上。以下是一个简化版的实现: ```java ...
getName()方法用于获取属性的名称,而getPropertyType()方法用于获取属性的类型。例如,在上面的例子中,我们使用PropertyDescriptor来描述TestDO的属性。 3. BeanInfo:BeanInfo是JavaBean的元数据,用于描述...
在Spring框架中,属性编辑器(PropertyEditor)是一种强大的工具,允许我们自定义类型转换过程。当我们需要将字符串形式的数据转换为Java对象时,属性编辑器就发挥了关键作用。例如,从请求参数或配置文件中读取的...
在Spring框架中,属性编辑器(PropertyEditor)扮演着至关重要的角色。它们是JavaBeans规范的一部分,用于在Java对象和其字符串表示之间进行转换。在Spring中,我们可以通过自定义属性编辑器来处理特定类型的值,...
当Spring尝试将配置文件中的属性值注入到Bean的属性时,如果该属性类型与配置值的类型不匹配,Spring会查找合适的PropertyEditor来完成类型转换。默认情况下,Spring提供了许多内置的PropertyEditor,例如将字符串...
自定义属性编辑器需要实现`java.beans.PropertyEditor`接口或其子接口`java.beans.CustomEditor`。通常,我们只需要实现`setValue`和`getAsText`这两个方法。`setValue`方法用于将字符串转换为对象,而`getAsText`则...
在Spring MVC中,当控制器方法接收请求参数时,如果请求参数与方法参数类型不匹配,Spring会尝试使用属性编辑器进行转换。例如,从字符串转换为日期、颜色代码到Color对象等。自定义属性编辑器需要继承`java.beans....
属性编辑器扩展了`java.beans.PropertyEditor`接口,允许开发者自定义如何将字符串转换为特定类型,反之亦然。例如,如果你有一个自定义的日期类,你可以创建一个属性编辑器来处理日期字符串的输入。 在实际开发中...
最后,对于`UserState`这样的枚举类型,Spring可以通过`Enum`类型转换器自动处理,但如果需要自定义转换逻辑,也可以创建一个`PropertyEditor`,覆盖`setAsText()`方法,将字符串转换为对应的枚举值。 总的来说,...
1. 使用Struts的`PropertyEditors`:Struts提供了一套自定义属性编辑器(PropertyEditor)机制,可以注册并使用自定义的编辑器来处理特定类型的转换。例如,我们可以创建一个自定义的日期编辑器,实现`java.beans....
Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。 第一章 序言 第二章 简介 2.1.概述 2.2.背景 2.3.模块 2.4.许可证信息 2.5.支持 第三章 背景 3.1.控制反转 第...
在Spring框架中,属性编辑器(PropertyEditor)是一个关键组件,它负责将配置文件中非标准格式的数据转换为JavaBean的可识别类型。属性编辑器是基于JavaBeans规范的,因此理解这个概念需要先了解JavaBean和JavaBeans...
5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建...
5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建...
5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的...
5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建...
5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建...
在这个例子中,`customEditors`属性的`map`定义了一个键值对,其中`key`是属性类型(`java.util.Date`),`value`是属性编辑器类的全限定名(`com.zhmg.spring.PropertyEditor`)。 通过这种方式,Spring就能识别并...
在提供的源码片段中,我们可以看到`PropertyEditorRegistrySupport`类创建了一系列默认的`PropertyEditor`实例,这些编辑器用于处理如`Charset`、`Class`、`Currency`、`File`、`InputStream`、`Locale`、`Pattern`...