Bean处理
import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletRequest; import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.beanutils.ConvertUtilsBean; import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.beanutils.PropertyUtilsBean; import org.apache.log4j.Logger; public class BeanUtil { private static Logger logger = Logger.getLogger(BeanUtil.class); private BeanUtil() { } public static <T> T createBean(Class<T> c, ServletRequest request) throws Exception { return createBean(c, request.getParameterMap()); } public static <T> T createBean(Class<T> c, Map<?, ?> properties) throws Exception { try { T t = c.newInstance(); BeanUtil.getBeanUtilsBean().populate(t, properties); return t; } catch (Exception e) { logger.debug("错误:", e); throw new Exception("数据处理失败!"); } } public static void copyProperties(Object dest, Object orig) throws Exception { try { BeanUtil.getBeanUtilsBean().copyProperties(dest, orig); } catch (Exception e) { logger.debug("错误:", e); throw new Exception("数据处理失败!"); } } public static BeanUtilsBean getBeanUtilsBean() { DateConverter dc = new DateConverter(); ConvertUtilsBean cub = new ConvertUtilsBean(); cub.register(dc, java.util.Date.class); cub.register(dc, java.sql.Date.class); cub.register(dc, java.sql.Time.class); cub.register(dc, java.sql.Timestamp.class); PropertyUtilsBean pub = new PropertyUtilsBean(); BeanUtilsBean utils = new BeanUtilsBean(cub, pub); return utils; } /** * 获取指定类的所有属性 * * @param c * 要获取属性的JavaBean类 * @return 类的所有属性集合 */ public static List<String> getBeanProperty(Class<?> c) { ArrayList<String> list = new ArrayList<String>(); try { PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(c); for (PropertyDescriptor pd : pds) { String name = pd.getName(); if (!name.equals("class")) { list.add(pd.getName()); } } } catch (Exception e) { e.printStackTrace(); } return list; } /** * 获取指定类的所有可读属性方法集合,键值为属性名称。 * * @param c * 要获取属性的JavaBean类 * @return 类的所有可读属性方法集合 */ public static Map<String, Method> getBeanGetter(Class<?> c) { LinkedHashMap<String, Method> map = new LinkedHashMap<String, Method>(); try { PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(c); for (PropertyDescriptor pd : pds) { String name = pd.getName(); Method method = pd.getReadMethod(); if (!name.equals("class") && method != null) { map.put(name, method); } } } catch (Exception e) { e.printStackTrace(); } return map; } /** * 获取指定类的所有可写属性方法集合,键值为属性名称。 * * @param c * 要获取属性的JavaBean类 * @return 类的所有可写属性方法集合 */ public static Map<String, Method> getBeanSetter(Class<?> c) { LinkedHashMap<String, Method> map = new LinkedHashMap<String, Method>(); try { PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(c); for (PropertyDescriptor pd : pds) { String name = pd.getName(); Method method = pd.getWriteMethod(); if (method != null) { map.put(name, method); } } } catch (Exception e) { e.printStackTrace(); } return map; } /** * 获取指定对象的字符串表达式(输出所有字段的字符表达式) * * @param o * 要输出信息的对象 */ public static String getBeanInfoString(Object o) { StringBuilder sb = new StringBuilder(); Map<String, Method> map = getBeanGetter(o.getClass()); for (String name : map.keySet()) { try { sb.append(name + ":" + map.get(name).invoke(o) + ","); } catch (Exception e) { e.printStackTrace(); } } if (sb.indexOf(",") != -1) { sb.deleteCharAt(sb.length() - 1); } return sb.toString(); } public static boolean classIsType(String className, Class<?> c) throws Exception { Class<?> clazz = Class.forName(className); if (clazz.equals(c)) { return true; } Class<?>[] classes = clazz.getInterfaces(); for (Class<?> ic : classes) { if (ic.equals(c)) { return true; } } Class<?> sc = clazz.getSuperclass(); if (sc == null) { return false; } if (sc.equals(c)) { return true; } else if (classIsType(sc.getName(), c)) { return true; } return false; } }
相关推荐
BeanUtil框架是一个在Java开发中常用的工具库,主要用于对象属性的获取、设置、拷贝以及类型转换等操作。它的设计目标是简化Java Bean的操作,提高代码的可读性和可维护性。这个“BeanUtil框架完整包”包含了...
BeanUtil是一个常用的Java工具库,主要用于对象与数据库之间的数据转换,简化了数据库操作中的数据绑定过程。这个工具库使得开发者可以更加便捷地处理Java Bean和SQL查询结果之间的映射,提高了开发效率。在Java开发...
《BeanUtil_Jar包:JavaBean操作神器》 在Java编程世界中,BeanUtils库扮演着重要的角色,它为开发者提供了便捷的操作JavaBean的工具类。这个“BeanUtil_Jar包”正是这样一个实用的工具集,它包含了丰富的功能,...
BEANutil工具类,可获取生日,简单的几行代码,给需要的你。BEANutil工具类,可获取生日,简单的几行代码,给需要的你。
《BeanUtil:Apache提供的高效Java反射工具包》 在Java编程中,BeanUtil是一个非常重要的工具包,尤其在处理对象的属性操作时,它扮演着不可或缺的角色。BeanUtil源自著名的开源组织Apache,是其 Commons BeanUtils...
BeanUtil属性拷贝工具类,支持基本的javabean属性拷贝,通过java反射和泛型编程实现了list属性拷贝
BeanUtil 主要用于实体Bean和Map之间的互转,使用方便,是一个不可多得的工具类哦
《BeanUtil1.8源码与jar包解析》 BeanUtil是Apache Commons项目中的一个工具类库,主要用于处理Java Bean的操作,提供了一系列便捷的方法来简化Java Bean的属性操作。在这个"BeanUtil1.8 SRC 源码和 jar包"中,包含...
BeanUtil.java
本文将深入探讨BeanUtil工具类的工作原理以及如何在Servlet中使用它。 首先,让我们理解一下JavaBean的概念。JavaBean是一种遵循特定规范的Java类,主要用于封装数据。它通常具有公有构造器、公有getter和setter...
BeanUtil需要的jar包和源码文件,commons-beanutils-1.8.0.jar,commons-beanutils-1.8.0-javadoc.jar,commons-beanutils-1.8.0-sources.jar,commons-beanutils-bean-collections-1.8.0.jar,commons-beanutils-...
在给定的标题"BeanUtil_MYSQL_mybaatis_"中,我们可以推断这是一个关于MyBatis和MySQL结合使用的工具类,可能用于自动根据实体Bean生成SQL语句。描述进一步明确了这个工具的功能,包括自动生成创建表的DDL(Data ...
beanutil的的jar包 大家顶啦
修改内容: 1.org.apache.commons.beanutils.converters包下增加了UtilDateConverter类 2.修改了org.apache.commons.beanutils.converters包下的StringConverter类 3.ConvertUtilsBean类中的public void ...
这个"commons-beanutil-1.7.0-src"压缩包包含了BeanUtils库的源代码,版本号为1.7.0,是开发者理解和自定义此库功能的重要资源。以下是关于Apache Commons BeanUtils库及其1.7.0版本的一些关键知识点: 1. **...
BeanUtil通常指的是Apache Commons BeanUtils库,这是一个实用工具类库,提供了各种方法来操作Java Bean,如属性的复制、类型转换等。在JSP项目中,BeanUtil可以帮助我们方便地处理对象之间的属性赋值,简化对象间的...
"beanutil的jar包打包" 指的是将Apache Commons BeanUtils相关的类库打包成一个或多个JAR(Java Archive)文件。BeanUtils是Java开发中常用的工具包,它提供了对Java Bean操作的各种便利方法,如属性的设置与获取,...
common-beanutil的源代码 1.8.1
beanutil_1.8.3_API
【标题】中的"dom4j jstl beanUtil log4j等jar包"涉及了四个重要的Java库,它们在开发Java应用程序,特别是Web应用时非常常见。下面将逐一详细介绍这些库的功能、用途以及如何在项目中使用它们。 1. **DOM4J**:这...