一、BeanUtils介绍
BeanUtils是apache的开发库;
为了使用BeanUtils,需要导入
(1)common-logging-1.1.1.jar
(2)common-beanutils.jar
二、BeanUtils开发
(1)设置属性;
(2)注册转换器;
(3)自定义转换器;
(4)批量设置属性;
注意:JavaBean必须是public的,不然BeanUtils会抛异常;
转自:http://blog.csdn.net/xiazdong/article/details/7339687
01 |
package org.xiazdong.beanutils; |
02 |
03 |
import java.text.ParseException; |
04 |
import java.text.SimpleDateFormat; |
05 |
import java.util.Date; |
06 |
import java.util.HashMap; |
07 |
import java.util.Map; |
08 |
09 |
import org.apache.commons.beanutils.BeanUtils; |
10 |
import org.apache.commons.beanutils.ConversionException; |
11 |
import org.apache.commons.beanutils.ConvertUtils; |
12 |
import org.apache.commons.beanutils.Converter; |
13 |
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter; |
14 |
import org.junit.Test; |
15 |
import org.xiazdong.Person; |
16 |
17 |
public class
Demo01 { |
18 |
19 |
// 设置属性 |
20 |
@Test |
21 |
public
void test1() throws
Exception { |
22 |
Person p =
new Person(); |
23 |
BeanUtils.setProperty(p,
"name" , "xiazdong" ); |
24 |
BeanUtils.setProperty(p,
"age" , 20 ); |
25 |
System.out.println(p.getName()); |
26 |
System.out.println(p.getAge()); |
27 |
} |
28 |
29 |
// 自定义转换器 |
30 |
@Test |
31 |
public
void test2() throws
Exception { |
32 |
Person p =
new Person(); |
33 |
ConvertUtils.register( new
Converter() { |
34 |
35 |
@Override |
36 |
public
Object convert(Class type, Object value) { |
37 |
if
(value == null ) { |
38 |
return
null ; |
39 |
} |
40 |
if
(!(value instanceof
String)) { |
41 |
throw
new ConversionException( "conversion error" ); |
42 |
} |
43 |
String str = (String) value; |
44 |
if
(str.trim().equals( "" )) { |
45 |
return
null ; |
46 |
} |
47 |
SimpleDateFormat sdf =
new SimpleDateFormat( "yyyy-MM-dd" ); |
48 |
try
{ |
49 |
return
sdf.parse(str); |
50 |
}
catch (ParseException e) { |
51 |
throw
new RuntimeException(e); |
52 |
} |
53 |
54 |
} |
55 |
56 |
}, Date. class ); |
57 |
BeanUtils.setProperty(p,
"birth" , "2011-10-10" ); |
58 |
System.out.println(p.getBirth().toLocaleString()); |
59 |
} |
60 |
61 |
// 使用内置的转换器 |
62 |
@Test |
63 |
public
void test3() throws
Exception { |
64 |
Person p =
new Person(); |
65 |
ConvertUtils.register( new
DateLocaleConverter(), Date. class ); |
66 |
BeanUtils.setProperty(p,
"birth" , "2011-10-10" ); |
67 |
System.out.println(p.getBirth().toLocaleString()); |
68 |
} |
69 |
70 |
// 使用内置的转换器 |
71 |
@Test |
72 |
public
void test4() throws
Exception { |
73 |
Map map =
new HashMap(); |
74 |
map.put( "name" ,
"xiazdong" ); |
75 |
map.put( "age" ,
"20" ); |
76 |
map.put( "birth" ,
"2010-10-10" ); |
77 |
ConvertUtils.register( new
DateLocaleConverter(), Date. class ); |
78 |
Person p =
new Person(); |
79 |
BeanUtils.populate(p, map); |
80 |
System.out.println(p.getAge()); |
81 |
System.out.println(p.getBirth()); |
82 |
} |
83 |
} |