`
375809600
  • 浏览: 153439 次
  • 来自: 湖北
社区版块
存档分类
最新评论

使用beanUtils操作javabean

阅读更多

使用BeanUtils操作javabean是非常简易的,但是默认支持的字符串转日期类,有bug,这里我解析一下BeanUtils的使用,和自己写日期转换器的
使用beanutils必须先导入两个jar包:
Beanutils下载地址:http://commons.apache.org/beanutils/download_beanutils.cgi(选择里面
commons-beanutils-1.8.3.jar)
Loging下载地址:
http://commons.apache.org/logging/download_logging.cgi(选择里面的commons-logging-1.1.1.jar)


package com.beanutils.domain;

import java.util.Date;

public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person() {
super();
}

public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
private String age;
private Date date;
}



//测试类

package com.beanutils.domain;

import java.lang.reflect.InvocationTargetException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import org.junit.Test;

public class Demo1 {
public void TestNeed() throws Exception {// 设置指定的属性值
Person p = new Person();
String name = "aaa";
BeanUtils.setProperty(p, "name", name);
}

@Test
public void ConvertFactory() throws Exception {// 由于java自带的jdk的日期转换器,有Bug,s所有这我们自己实现一个
String date = "2012-09-17";

ConvertUtils.register(new Converter() {// 是一个接口,new接口要实现接口里面的方法;

@Override
public Object convert(Class arg0, Object value) {
if (value == null) {// 判断是否为空
return null;
}
if (!(value instanceof String)) {// 判断是否为String类型
throw new ConversionException("只能传进String类型作为参数");
}
String str = (String) value;
if (str.trim().equals("")) {// 判断是否为空
return null;
}
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
try {
return sd.parse(str);// 避免格式不对,错的抛异常,这是
// ConvertUtils.register(new
// DateLocaleConverter(),Date.class);没有考虑到的bug所在

} catch (Exception e) {
throw new RuntimeException(e);
}
}
}, Date.class);// 注意,这里你要转换的类型,不能写错
Person p = new Person();
BeanUtils.setProperty(p, "date", date);
System.out.println(p.getDate());

}

 

 


}

 



  


  
0
5
分享到:
评论
2 楼 375809600 2012-09-19  
closer13 写道
“,但是默认支持的字符串转日期类,有bug,” 讲讲bug是啥?

String date = "";//设一个date等于空
ConvertUtils.register(new DateLocaleConverter(),Date.class);//没有考虑到的bug所在,jdk自带的日起转换器,运行会报错
//jdk自带没有考虑到这种情况;
Person p = new Person();
BeanUtils.setProperty(p, "date", date);
System.out.println(p.getDate());
//运行我们自己写的,运行通过,显示Null
//运行jdk的,运行不通过
1 楼 closer13 2012-09-19  
“,但是默认支持的字符串转日期类,有bug,” 讲讲bug是啥?

相关推荐

    BeanUtils详细讲解.pdf

    根据提供的部分内容,文档详细讲解了如何使用BeanUtils操作JavaBean的属性,包括利用PropertyUtils工具类获取和设置简单属性和索引属性。文档还提到了BeanUtils的稳定版本(1.7.0,2003年2月18日发布),以及...

    使用BeanUtils操作属性的一个小坑

    然而,就像标题所指出的,“使用BeanUtils操作属性的一个小坑”,在实际使用过程中,我们可能会遇到一些意想不到的问题。这篇文章将深入探讨这个问题,并提供解决方案。 首先,BeanUtils的核心功能是属性的自动映射...

    JavaBean和beanutils工具类的学习

    在示例程序中,`TestJavaBean`类展示了如何使用BeanUtils和PropertyUtils来操作JavaBean对象`javaBeanClass`的属性。`getProperty()`和`setProperty()`方法展示了如何通过反射和PropertyDescriptor类直接访问和修改...

    beanutils使用

    本篇文章将深入探讨如何使用BeanUtils库,特别是通过它将Map对象转换为JavaBean的过程。 Apache Commons BeanUtils的核心功能是通过反射机制来操作JavaBean的属性。在Java编程中,JavaBean是一种遵循特定规范的类,...

    javabeanbeanutils

    JavaBean和BeanUtils是Java开发中的重要概念,尤其在企业级应用开发中广泛使用。Apache Commons项目中的BeanUtils库提供了方便的工具类,简化了JavaBean的处理工作。本篇文章将深入探讨JavaBean、BeanUtils以及相关...

    commons-beanutils-1.9.1解析javaBean方式

    Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的时候居然错过。 1.属性的动态getter,setter 2....

    beanutils的jar包

    《Apache Commons BeanUtils:JavaBean操作利器》 在Java编程中,Apache Commons BeanUtils库是一个不可或缺的工具包,尤其在处理JavaBean对象时,它提供了极大的便利性。本篇文章将深入探讨Apache Commons ...

    beanutils 的jar包

    《BeanUtils:JavaBean操作利器》 在Java开发中,我们常常需要对JavaBean对象进行各种操作,如属性的设置、获取以及复制等。Apache Commons BeanUtils库正是为了解决这些问题而诞生的,它提供了简单易用的API,极大...

    BeanUtils类库jar包和源码

    BeanUtils是Apache Commons项目中的一个核心工具类库,主要用于Java对象的属性操作,尤其是在处理JavaBean时非常方便。这个类库提供了许多实用方法,能够简化Java开发中的对象属性赋值和获取过程,极大地提高了开发...

    beanutils-1.9.3-bin

    BeanUtils是由Apache公司开发的针对操作JavaBean的工具包。 对于JavaBean,简单的来说,就是要有一个空参的构造器和对属性的getXXX方法和setXXX方法。 在由JDK提供的默认的API中,有java.beans包,里面有诸如...

    commons-beanutils-1.9.4

    Apache Commons BeanUtils是Java开发中一个非常重要的工具库,它为开发者提供了大量便捷的JavaBean操作功能。在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目...

    commons-beanutils-1.8.0

    首先,`commons-beanutils-1.8.0.jar`是Apache Commons项目的一个子项目,其核心目标是提供一套用于操作JavaBean属性的工具类。这个版本的BeanUtils库包含了对JavaBeans的全面支持,包括属性的获取、设置、复制以及...

    commons-beanutils-1.9.3.jar

    Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于简化对JavaBean的操作。这个`commons-beanutils-1.9.3.jar`文件是该库的一个版本,它提供了丰富的API来帮助开发者更方便地处理JavaBean对象。在这个...

    BeanUtils工具

    BeanUtils工具是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品。beanUtils 可以便于对javaBean的属性、对象进行赋值,beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。

    commons-beanutils-1.8.0.jar

    Commons BeanUtils库是Apache软件基金会开发的一个开源项目,主要用于简化JavaBean操作。在Java编程中,BeanUtils库提供了一系列方便实用的方法,使得开发者能够更加高效地处理Java对象,特别是JavaBean对象。标题中...

    beanutils-logging.zip

    例如,在处理业务逻辑时,可以使用BeanUtils轻松地对JavaBean进行操作,同时利用Commons Logging记录关键操作的日志,便于后期问题排查和性能优化。 总结来说,`commons-beanutils-1.8.3.jar`和`commons-logging-...

    commons-beanutils-1.8.3

    《Apache Commons BeanUtils:JavaBean操作利器》 Apache Commons BeanUtils是Java开发中一个非常实用的工具库,它为处理JavaBean提供了极大的便利。在JavaWeb开发中,尤其是在Servlet环境中,BeanUtils扮演着核心...

    beanutils-1.9.3jar包

    Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于处理JavaBeans对象,提供了一组方便、灵活的方法来操作JavaBean的属性。这个"beanutils-1.9.3.jar"包是Apache Commons BeanUtils库的一个特定版本,...

    BeanUtils所需的包

    在Java开发中,BeanUtils是一个...熟练掌握BeanUtils的使用,能够帮助开发者更高效地处理JavaBean对象的操作,提高开发效率。在项目中合理地运用BeanUtils,能够使得代码更加简洁,减少重复工作,提升整体代码质量。

Global site tag (gtag.js) - Google Analytics