1. 干什么?
- 操作bean的,java web开发中,vo , entity 间不同对象,但是他们的属性几乎一样,beanUtil可以帮你把一个对象的属性copy到另一个属性中去!只是这其中有些注意点,规矩是工具包的作者制定的,我们得按照他的规矩来!
BeanUtils.setProperty(Obejct bean, String name, Object value); // 通过这个方法 你可以给bean的字段赋值,即使name在bean中不存在他也不会报错! // 但是如果你想通过getProperty(Obejct bean ,String name) 获得该字段的值就会 // 报NoSuchMethodException 因为它是通过反射调用getter来获得值的,而你没定义这个方法自然就会报错!
s.copyProperties(Object dest, Object orig); // 他会把orig对象的字段拷贝到dest中,但是必须保证字段名称相同 // 不同的,他会忽略 不会报错! 如果存在自定义对象,比如dest中是User ,orig中是t_usr ,但是这两个类中的字段是一样的,可以copy成功吗?entity间的映射关系 貌似不可以,会报非法访问的异常!直接copy当然不可以! 可以通过定义装换器 converter!
1. 定义转换器
public class AnimalConverter implements Converter{ // 实现这个接口 @Override public <T> T convert(Class<T> type, Object value) {// 转换后的类型 以及 要转换后的对象 T ani = null; try { ani = type.newInstance(); // 通过反射由类名获得对象 BeanUtils.copyProperties(ani, value);// 将valu中的字段复制到转换后的对象中 } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return ani; } }
2. 注册
AnimalConverter ac = new AnimalConverter(); ConvertUtils.register(ac,Animal.class); // 第二个参数表示你要转换成类型 ConvertUtils.register(ac, Fish.class);// 如果类之间的关系是一层套一层,比如person包含 annimal , animal 中又包含fish ,就要定义多个转换器
这里有一个问题,你多次注册的话,那么当进行转换时,怎么找到你要转换的类啊?这样不会重复了吗?
不会的,看源码:
// 这一步是转换的过程 value 为要转换的对象 , type为要转换成的类型 protected Object convert(Object value, Class<?> type) { // 就是这一步了,他会根据type到convertUtil里面去寻找相应的类型!所以不管你定义了多少个 // 不同类型的转换器,不会相互干扰的! Converter converter = getConvertUtils().lookup(type); if (converter != null) { log.trace(" USING CONVERTER " + converter); // 这里就会调用你实现的方法,进行转换 return converter.convert(type, value); } else { return value; } }
相关推荐
提供了对javabean进行操作的工具类 用了很多年了 很全很经典的BeanUtil_jar包
要使用根据请求自动填充Java对象,表单bean 使用的jar包,BeanUtilities工具类使用jar包
按需选择,其中工具类模块有:jodd-core 一些工具类,包括Printf、JDateTime、StringUtil、Fast buffers等等jodd-bean BeanUtil以及类型检查转换工具jodd-props 更强大的Java Properties替代jodd-email 更简单...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
java_utils常用工具类打包,欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil,...
Commons-beanutil中包含大量和JavaBean操作有关的工具方法,使用beanutils可轻松利用Java反射机制来完成所需功能,而不需要详细研究反射的原理和使用,同时beanutils类库中提出了动态Bean的概念,可在运行时动态对...
包括commons所有的18个工具包: validator、pool、beanutil、logging、dbcp、collections、codec、digester、discover、email、fileupload、httpclient、jelly、jxpath、lang、modeler、net
使用XLSTransformer生成XLS报表的jar包: jxls-core-0.9.7.jar jxls-reader-0.9.7.jar poi-3.6.jar commons-jexl-1.1.jar commons-digester-2.0.jar commons-beanutil-core-1.8.3.jar commons-collection.jar
json开发工具jar包必备commons-colloections-3.2.1.jar commons-logging-1.1.1.jar commons-beanutil.jar commons-httpclient.jar commons-lang.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15.jar morph-1.1.1.jar
commons-beanutils.jar 免费下载 commons-beanutils 是 Apache 开源组织提供的用于操作 JAVA BEAN 的工具包。 使用 commons-beanutils,我们可以很方便的对 bean 对象的属性进行操作。
commons-beanutils.jar 免费下载 commons-beanutils 是 Apache 开源组织提供的用于操作 JAVA BEAN 的工具包。 使用 commons-beanutils,我们可以很方便的对 bean 对象的属性进行操作。
commons-beanutils是Apache开源组织提供的用于操作JAVA BEAN的工具包。使用commons-beanutils,我们可以很方便的对bean对象的属性进行操作。
commons-beanutils-1.8.3。commons-beanutils是Apache开源组织提供的用于操作JAVA BEAN的工具包。使用commons-beanutils,我们可以很方便的对bean对象的属性进行操作。
jodd-bean BeanUtil以及类型检查转换工具 jodd-props 更强大的Java Properties替代 jodd-email 更简单易用的e-mail收发 jodd-upload 处理HTTP上传 jodd-servlets 一些Servlet相关的工具类, 附带一套漂亮的JSP标签库 ...
commons-beanutils是Apache提供的一个用于操作JAVA bean的工具包。里面提供了各种各样的工具类,让我们可以很方便的对bean对象的属性进行各种操作。
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...