BeanUtils 读取数据
来源:互联网 发布:mac office 2011 编辑:程序博客网 时间:2024/06/06 03:31
前两篇文章都是关于setProperty的,下面来说一个关于getProperty 的小案例。如下:
MyClass.java
package beanutils;public class MyClass { private String classname; public String getClassname() { return classname; } public void setClassname(String classname) { this.classname = classname; }}
MyBean.java
package beanutils;import java.util.Date;public class MyBean { private String name; private int age; private Date birthday; private boolean isAlive; private MyClass myclass; public MyClass getMyclass() { return myclass; } public void setMyclass(MyClass myclass) { this.myclass = myclass; } public MyBean() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public boolean isAlive() { return isAlive; } public void setAlive(boolean isAlive) { this.isAlive = isAlive; }}
AdvanceBean.java
package beanutils;import java.util.List;/** * 提供了集合的形式获取 * * @author Administrator * */public class AdvanceBean { private List list; private MyClass myclass; public MyClass getMyclass() { return myclass; } public void setMyclass(MyClass myclass) { this.myclass = myclass; } public List getList() { return list; } public void setList(List list) { this.list = list; }}
TestAdvanceBean.java
package beanutils;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.apache.commons.beanutils.BeanUtils;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 TestAdvanceBean { /** * 简单的测试基本数据类型的数据的getProperty方法 * * @throws Exception */ @Test public void test1() throws Exception { String name = "Molly"; int age = 20; Boolean isAlive = true; MyBean myBean = new MyBean(); BeanUtils.setProperty(myBean, "name", name); BeanUtils.setProperty(myBean, "age", age); System.out.println("Name: " + BeanUtils.getProperty(myBean, "name")); System.out.println("Age: " + BeanUtils.getProperty(myBean, "age")); } /** * 对于boolean数据类型,由于其setter,getter方法不符合标准,所以不能正确的获得输出结果 * * java.lang.NoSuchMethodException: Unknown property 'isAlive' on class * 'class beanutils.MyBean' * * @throws Exception */ @Test public void test2() throws Exception { MyBean myBean = new MyBean(); boolean isAlive = false; BeanUtils.setProperty(myBean, "isAlive", isAlive); System.out.println("Name: " + BeanUtils.getProperty(myBean, "name")); System.out.println("Age: " + BeanUtils.getProperty(myBean, "age")); System.out.println("IsAlive: " + BeanUtils.getProperty(myBean, "isAlive")); } /** * 对Date数据类型<br> * 进行测试 使用内置的转换器 * * @throws Exception */ @Test public void test3() throws Exception { String birthday = "2016-07-05"; MyBean myBean = new MyBean(); ConvertUtils.register(new DateLocaleConverter(), Date.class); BeanUtils.setProperty(myBean, "birthday", birthday); System.out.println(BeanUtils.getProperty(myBean, "birthday")); } /** * 对Date数据类型<br> * 进行测试 使用z自定义的转换器 * * @throws Exception */ @Test public void test4() throws Exception { String birthday = "2016-07-05 11:59:59"; MyBean myBean = new MyBean(); ConvertUtils.register(new Converter() { @Override public <T> T convert(Class<T> type, Object value) { try { String data = (String) value; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return (T) sdf.parse(data); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } }, Date.class); BeanUtils.setProperty(myBean, "birthday", birthday); System.out.println(BeanUtils.getProperty(myBean, "birthday")); } /** * 测试 组合类中的property获取 <br> * 支持内嵌类数据的读取,但是不支持内嵌类的直接的读取 * * @throws Exception */ @Test public void test5() throws Exception { MyClass myclass = new MyClass(); myclass.setClassname("软件学院软件开发与测试1414班"); MyBean myBean = new MyBean(); BeanUtils.setProperty(myBean, "myclass", myclass); System.out.println(BeanUtils.getProperty(myBean, "myclass.classname")); } /** * 对于list等数据的getProperty测试<br> * * 默认获得第一个列表项的内容,也可以指定下标进行内容的读取 * * @throws Exception */ @Test public void test6() throws Exception { List<String> list = new ArrayList<String>(); for (int i = 0; i < 7; i++) { list.add("列表项" + i); } AdvanceBean advanceBean = new AdvanceBean(); BeanUtils.setProperty(advanceBean, "list", list); System.out.println(BeanUtils.getProperty(advanceBean, "list").toString()); System.out.println(BeanUtils.getProperty(advanceBean, "list[1]").toString()); System.out.println(BeanUtils.getProperty(advanceBean, "list[6]").toString()); }}
总结
代码很详细,就不再废话了。
最后一点需要提醒的是,导好包!导对包!思路很重要!
1 0
- BeanUtils 读取数据
- BeanUtils对数据的封装
- BeanUtils注册数据转化类型
- beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- beanutils
- beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- Beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- 【Leetcode】Word Break II
- Oracle存储过程基本语法与基础教程(简明清楚且附实例)
- git 使用
- [Material Design]使用RoundedBitmapDrawable快速生成圆角和圆形图片
- DrawCall的介绍
- BeanUtils 读取数据
- 创建型--原型模式
- 郑轻OJ 1396: 愚人节的礼物
- 解决:ORA-12541:TNS:无监听程序
- 图算法—Problem H
- poj之旅——2886
- block相关
- 嵌入式Linux启动优化手记2 U-boot优化
- IOS-UIView的移动