欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用beanUtils操作javabean

程序员文章站 2022-04-18 15:20:52
...

使用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());

}

 

 


}使用beanUtils操作javabean
            
    
    博客分类: java基础 javaBeanUtilsconverter