`

spring里使用java的属性编辑器

阅读更多
[java拾遗篇] java.beans.PropertyEditor(属性编辑器)简单应用


http://ajava.org/readbook/open/jtspring2x/15520.html

java.beans.PropertyEditor的从字义来看是一个属性编辑器,但总觉得它的作用更像一个转换器--从字符串转换为类对象的属性。

java.beans.PropertyEditor接口定义的方法有好几个,但是最重要为下面两个:

void setValue(Object value)

void setAsText(String text) throws java.lang.IllegalArgumentException;

一般地,我们要使用PropertyEditor时,并不直接实现此接口,而是通过继承实现此接口的 java.beans.PropertyEditorSupport来简化我们的工作,在子类覆盖setAsText方法就可以了,setValue方法一般不直接使用,在setAsText方法中将字符串进行转换并产生目标对象以后,由调setAsText调用setValue来把目标对象注入到编辑器中。当然,你可用覆盖更多的方法来满足你的特殊要求。JavaBean的类和接口,被大部分spring包使用,可以从spring中学习更成熟的 JavaBean使用方法。

简单的例子:

实体类Person:
public class Person
{
    private String name;
    private String sex;
    private int age;
   
    public Person(String name, String sex, int age)
    {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
   
    public int getAge()
    {
        return age;
    }
    public void setAge(int age)
    {
        this.age = age;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getSex()
    {
        return sex;
    }
    public void setSex(String sex)
    {
        this.sex = sex;
    }
   
    @Override
    public String toString()
    {
        return "Person["+name+", "+sex+", "+age+"]";
    }
}



Person的属性编辑器:
public class PersonPropertyEditor extends PropertyEditorSupport
{
    public void setAsText(String text)
    {
        setValue(parseString(text));
    }

    private Object parseString(String text)
    {
        String[] parts = tokenizeToStringArray(text, ", ", false, false);
        String name = (parts.length > 0 ? parts[0] : "undefine");
        String sex = (parts.length > 1 ? parts[1] : "undefine");
        int age = (parts.length > 2 ? Integer.valueOf(parts[2]) : 0);
        return (text.length() > 0 ? new Person(name, sex, age) : null);
    }

    private  String[] tokenizeToStringArray(String str, String delimiters, boolean trimTokens,
                                                    boolean ignoreEmptyTokens)
    {
        StringTokenizer st = new StringTokenizer(str, delimiters);
        List tokens = new ArrayList();
        while(st.hasMoreTokens())
        {
            String token = st.nextToken();
            if(trimTokens)
            {
                token = token.trim();
            }
            if(!ignoreEmptyTokens || token.length() > 0)
            {
                tokens.add(token);
            }
        }
        return toStringArray(tokens);
    }

    private  String[] toStringArray(Collection collection)
    {
        if(collection == null)
        {
            return null;
        }
        return (String[])collection.toArray(new String[collection.size()]);
    }
}



测试代码:
    public static void main(String[] args)
    {
        PersonPropertyEditor editor = new PersonPropertyEditor();
        editor.setAsText("aSam,man,22");
        System.out.println(editor.getValue());
    }



结果输出:
Person[aSam, man, 22]
分享到:
评论

相关推荐

    spring 自定义属性编辑器

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

    spring中的自定义属性编辑器

    在Spring框架中,属性编辑器(PropertyEditor)扮演着至关重要的角色。它们是JavaBeans规范的一部分,用于在Java对象和其字符串表示之间进行转换。在Spring中,我们可以通过自定义属性编辑器来处理特定类型的值,...

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

    在Spring 2.0框架中,自定义属性编辑器(Custom Property Editor)是一个重要的功能,它允许开发者扩展Spring的默认属性绑定机制,以处理特定类型的转换。本文将深入探讨这一特性,结合源码分析和实际应用,帮助你...

    Spring学习笔记(11)----自定义属性编辑器

    在Spring框架中,属性编辑器(PropertyEditor)扮演着至关重要的角色。它们是JavaBeans规范的一部分,用于在Java对象和字符串之间进行数据转换。在Spring中,属性编辑器被广泛应用于IoC容器,用于处理配置文件中的...

    spring自定义编辑器

    在Spring框架中,自定义编辑器主要用于处理数据类型的转换问题,特别是在将用户输入的数据转换为Java对象时非常有用。例如,用户通过表单提交了一个日期格式的字符串,而我们需要将其转换为`java.util.Date`类型。...

    富文本编辑kindeditor使用 java 实现 spring mvc

    富文本编辑器KindEditor在Java实现Spring MVC框架中的应用是一个常见的需求,特别是在开发Web应用程序时,需要用户输入格式丰富的文本内容。这篇文档将详细介绍如何在Spring MVC项目中集成并使用KindEditor。 首先...

    浅谈Spring的属性编辑器的使用

    如果没有显式指定,Spring会使用`PropertyEditorManager`来查找默认的属性编辑器。如果需要自定义转换逻辑,可以创建一个实现了`PropertyEditor`接口的类,并在Spring配置中注册它,或者通过`@Component`注解使其...

    java 在线编辑器 图片批量上传等功能

    服务器端通常使用Servlet或Spring MVC等框架来接收和处理上传的图片,然后返回一个图片URL供编辑器插入到文档中。 图片批量上传则进一步提高了效率,用户可以一次性选择多个图片进行上传。这个功能通常依赖于前端的...

    springmvc自定义属性编辑器和参数解析器

    在Spring MVC中,当控制器方法接收请求参数时,如果请求参数与方法参数类型不匹配,Spring会尝试使用属性编辑器进行转换。例如,从字符串转换为日期、颜色代码到Color对象等。自定义属性编辑器需要继承`java.beans....

    java集成富文本编辑器KindEditor

    Java集成富文本编辑器KindEditor是一项常见的Web开发任务,它能提供给用户一个可视化的文本编辑界面,使得在网页上创建、编辑带有格式的文本变得简单。KindEditor是一款开源的JavaScript富文本编辑器,适用于Java...

    自定义属性编辑及Spring处理器映射

    java中的属性编辑器详细说明及Spring中AnnotationMethodHandlerAdapter说明和DefaultAnnotationHandlerMapping的说明及用法

    java上传文件和文本编辑器功能

    在Java开发中,文件上传和文本编辑器功能是常见的需求,尤其在Web应用中。本文将深入探讨如何使用Java实现这两个功能,以及涉及到的关键技术。 首先,文件上传是Web应用程序中用户交互的重要部分,通常涉及表单提交...

    Spring视频教程(1)

    此外,"009_Spring属性编辑器.avi"和"011_Spring属性编辑器_日期格式可配置_多文件读取方式.avi"将讲解Spring属性编辑器的用法,如何处理复杂类型的属性注入,如日期格式化和文件操作。 "010_上午内容回顾.avi"是对...

    尚学堂Spring学习笔记

    本文档记录了尚学堂Spring学习笔记的重要知识点,涵盖了Spring配置文件的设置、普通属性的注入、自定义属性编辑器、公共属性的注入、Spring注解等内容。 一、Spring配置文件的设置 在MyEclipse中编写Spring配置...

    蜜蜂EL编辑器V3.6

    在实际应用中,蜜蜂EL编辑器V3.6可以帮助开发者更高效地编写和调试EL表达式,尤其是在处理JSP页面、JSF组件以及Spring MVC的视图逻辑时。它不仅简化了JavaBeans的访问,也降低了代码的复杂度,提高了代码的可读性...

    HTML编辑器在JAVA WEB下的应用研究.pdf

    4. 数据交互:编辑器中的内容可以通过JavaScript获取,并通过AJAX或表单提交方式发送到服务器端,服务器端的Java代码负责处理这些数据并存储到数据库中。 5. 后台处理:在Java Web应用中,可以使用如Struts、Spring ...

    SpringPropertyEditorDemo:演示使用自定义属性编辑器绑定Spring-MVC中用户定义的对象的集合

    4. **绑定到模型**:在控制器方法中,我们可以声明一个`List<User>`类型的参数,Spring MVC会自动使用我们注册的属性编辑器来处理该参数。 在`SpringPropertyEditorDemo-master`压缩包中,代码应该包含了相关的控制...

    wps-view-java wps在线编辑 v1.0.zip

    标题 "wps-view-java wps在线编辑 v1.0.zip" 暗示这是一个基于Java技术实现的WPS在线编辑器项目,版本为v1.0。该项目可能提供了让用户在Web浏览器中直接编辑WPS文档的功能,类似于Google Docs或Microsoft Office On...

    thymeleaf for spring pdf

    使用Spring表达式语言(SpringEL)替换模板中的OGNL表达式,创建与表单绑定bean和结果绑定完全集成的模板表单,并使用属性编辑器、转换服务和验证错误处理。 此外,Thymeleaf的Spring集成还包括使用Spring管理的...

Global site tag (gtag.js) - Google Analytics