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

使用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是啥?

相关推荐

    JavaBean和beanutils工具类的学习

    JavaBean和beanutils工具类的学习

    commons-beanutils-1.9.1解析javaBean方式

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

    beanutils-1.9.3-bin

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

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

    详见 http://blog.csdn.net/arttecme/article/details/8566818

    BeanUtils工具

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

    BeanUtils_beanutils_

    BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。使用第三方工具,需要导入jar包:

    beanutils 的jar包

    beanutils的包,可以用的哦~ 可以更加方便的操作javabean文件

    beanutils中文API.doc

    Commons-beanutil中包含大量和JavaBean操作有关的工具方法,使用beanutils可轻松利用Java反射机制来完成所需功能,而不需要详细研究反射的原理和使用,同时beanutils类库中提出了动态Bean的概念,可在运行时动态对...

    BeanUtils-jar包

    BeanUtils-jar包 用于封装JavaBean的 JavaBean:标准的Java类

    commons-beanutils-1.9.3.jar

    阿帕奇的commons-beanutils-1.9.3.jar包,操作javabean

    commons-beanutils使用工具包

    commons-beanutils使用工具包

    commons-beanutils-1.4 jar

    Java中经常会操作javabean,BeanUtils可以简化很多操作

    commons-beanutils-1.8.3

    commons-beanutils-1.8.3.rar官方正版免费版,BeanUtils主要提供了对于JavaBean进行各种操作。 个包主要提供用于操作JavaBean的工具类,Jakarta-Common-BeanUtils的主要功能都在这个包里实现。

    javabeanbeanutils

    commons-logging-1.0.4.jar commons-beanutils-1.8.3.jar

    commons-beanutils.jar、commons-logging.jar两个包

    beanUtils 方便访问javaBean 附带支持框架 logging jar包,Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar,以及其依赖的commons-logging-1.2.jar包

    beanutils工具类

    beanutils bean工具类 操作javabean 不费事 省的写反射

    beanUtils jar包

    beanUtils工具包是javabean操作类时用到的第三方jar包。提供良好的开发效率,和性能。

    commons-beanutils-1.9.CHM

    Commons-beanutil中包括大量和JavaBean操作有关的工具方法,使用它能够轻松利用Java反射机制来完毕代码中所须要的功能,而不须要具体研究反射的原理和使用,同一时候,该类库中提出了动态Bean的概念,不但提供现有...

    commons-beanutils-1.9.3jar包source包及相关jar包

    apache提供了一套开源的api BeanUtils组件,方便对javabean的操作。

    这是BeanUtils的jar包

    BeanUtils最核心的好处在于:我们在编码时,并不需要知道我们处理的JavaBeans具体是什么类型,有哪些属性,这些信息是可以动态获取的,甚至我们都可以不必去关心事实上是否存在这样一个具体的JavaBean类。...

Global site tag (gtag.js) - Google Analytics