使用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的属性,包括利用PropertyUtils工具类获取和设置简单属性和索引属性。文档还提到了BeanUtils的稳定版本(1.7.0,2003年2月18日发布),以及...
然而,就像标题所指出的,“使用BeanUtils操作属性的一个小坑”,在实际使用过程中,我们可能会遇到一些意想不到的问题。这篇文章将深入探讨这个问题,并提供解决方案。 首先,BeanUtils的核心功能是属性的自动映射...
在示例程序中,`TestJavaBean`类展示了如何使用BeanUtils和PropertyUtils来操作JavaBean对象`javaBeanClass`的属性。`getProperty()`和`setProperty()`方法展示了如何通过反射和PropertyDescriptor类直接访问和修改...
本篇文章将深入探讨如何使用BeanUtils库,特别是通过它将Map对象转换为JavaBean的过程。 Apache Commons BeanUtils的核心功能是通过反射机制来操作JavaBean的属性。在Java编程中,JavaBean是一种遵循特定规范的类,...
JavaBean和BeanUtils是Java开发中的重要概念,尤其在企业级应用开发中广泛使用。Apache Commons项目中的BeanUtils库提供了方便的工具类,简化了JavaBean的处理工作。本篇文章将深入探讨JavaBean、BeanUtils以及相关...
Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的时候居然错过。 1.属性的动态getter,setter 2....
《Apache Commons BeanUtils:JavaBean操作利器》 在Java编程中,Apache Commons BeanUtils库是一个不可或缺的工具包,尤其在处理JavaBean对象时,它提供了极大的便利性。本篇文章将深入探讨Apache Commons ...
《BeanUtils:JavaBean操作利器》 在Java开发中,我们常常需要对JavaBean对象进行各种操作,如属性的设置、获取以及复制等。Apache Commons BeanUtils库正是为了解决这些问题而诞生的,它提供了简单易用的API,极大...
BeanUtils是Apache Commons项目中的一个核心工具类库,主要用于Java对象的属性操作,尤其是在处理JavaBean时非常方便。这个类库提供了许多实用方法,能够简化Java开发中的对象属性赋值和获取过程,极大地提高了开发...
BeanUtils是由Apache公司开发的针对操作JavaBean的工具包。 对于JavaBean,简单的来说,就是要有一个空参的构造器和对属性的getXXX方法和setXXX方法。 在由JDK提供的默认的API中,有java.beans包,里面有诸如...
Apache Commons BeanUtils是Java开发中一个非常重要的工具库,它为开发者提供了大量便捷的JavaBean操作功能。在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目...
首先,`commons-beanutils-1.8.0.jar`是Apache Commons项目的一个子项目,其核心目标是提供一套用于操作JavaBean属性的工具类。这个版本的BeanUtils库包含了对JavaBeans的全面支持,包括属性的获取、设置、复制以及...
Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于简化对JavaBean的操作。这个`commons-beanutils-1.9.3.jar`文件是该库的一个版本,它提供了丰富的API来帮助开发者更方便地处理JavaBean对象。在这个...
BeanUtils工具是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品。beanUtils 可以便于对javaBean的属性、对象进行赋值,beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。
Commons BeanUtils库是Apache软件基金会开发的一个开源项目,主要用于简化JavaBean操作。在Java编程中,BeanUtils库提供了一系列方便实用的方法,使得开发者能够更加高效地处理Java对象,特别是JavaBean对象。标题中...
例如,在处理业务逻辑时,可以使用BeanUtils轻松地对JavaBean进行操作,同时利用Commons Logging记录关键操作的日志,便于后期问题排查和性能优化。 总结来说,`commons-beanutils-1.8.3.jar`和`commons-logging-...
《Apache Commons BeanUtils:JavaBean操作利器》 Apache Commons BeanUtils是Java开发中一个非常实用的工具库,它为处理JavaBean提供了极大的便利。在JavaWeb开发中,尤其是在Servlet环境中,BeanUtils扮演着核心...
Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于处理JavaBeans对象,提供了一组方便、灵活的方法来操作JavaBean的属性。这个"beanutils-1.9.3.jar"包是Apache Commons BeanUtils库的一个特定版本,...
在Java开发中,BeanUtils是一个...熟练掌握BeanUtils的使用,能够帮助开发者更高效地处理JavaBean对象的操作,提高开发效率。在项目中合理地运用BeanUtils,能够使得代码更加简洁,减少重复工作,提升整体代码质量。