首页 > 编程 > JSP > 正文

jsp和controller数据交互工具类

2019-11-11 00:34:19
字体:
来源:转载
供稿:网友

1

2

import java.util.ArrayList;import java.util.List;import java.util.concurrent.ConcurrentHashMap;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.sPRingframework.cglib.beans.BeanCopier;import org.springframework.util.DigestUtils;public class CopyBeanUtils {	/**	 * Bean 对象属性copy Util	 * 	 * @author 	 */	private static Logger logger = LoggerFactory.getLogger(CopyBeanUtils.class);	private static ConcurrentHashMap<String, BeanCopier> cache = new ConcurrentHashMap<String, BeanCopier>();	/**	 * @param source	 *            源对象class	 * @param target	 *            目标对对象class	 * @param sourceObj	 *            复制的源对象	 * @param useConverter	 * @return	 * @throws Exception	 */	public static <T> T copyBeanProperties( Class<T> target,			Object sourceObj, boolean useConverter) {		if (sourceObj == null)			return null;		T t;		try {			t = target.newInstance();		} catch (Exception e) {			logger.error("", e);			return null;		}		String key = sourceObj.getClass().getName() + target.getName();		BeanCopier copier = cache.get(key);		if (copier == null) {			copier = createBeanCopier(sourceObj.getClass(), target, useConverter, key);		}		copier.copy(sourceObj, t, null);		return t;	}	/**	 * 	 * 	 * @param sourceObj	 *            源对象	 * @param target	 *            目标对象	 * @param useConverter	 * @return	 * @throws Exception	 */	public static <T> T copyBeanProperties(Object sourceObj, T target,			boolean useConverter) {		if (sourceObj == null || target == null)			return null;		String key = sourceObj.getClass().getName()				+ target.getClass().getName();		BeanCopier copier = cache.get(key);		if (copier == null) {			copier = createBeanCopier(sourceObj.getClass(), target.getClass(),					useConverter, key);		}		copier.copy(sourceObj, target, null);		return target;	}	public static <T> List<T> copyListBeanPropertiesToList(List<?> sourceObjs,			List<T> targets, Class<T> targetType) {		if (sourceObjs == null || targets == null || targetType == null)			return null;		T t;		for (Object o : sourceObjs) {			try {				t = targetType.newInstance();				targets.add(copyBeanProperties(o, t, false));			} catch (InstantiationException e) {				logger.error("", e);			} catch (IllegalaccessException e) {				logger.error("", e);			}		}		return targets;	}		public static <T> List<T> copyListBeanPropertiesToList(List<?> sourceObjs,			 Class<T> targetType) {		List<T> targets=new ArrayList<T>();		return copyListBeanPropertiesToList(sourceObjs,targets,targetType);	}	private static String getHashKey(String str) {		if (str == null)			return null;		return DigestUtils.md5DigestAsHex(str.getBytes());	}	@SuppressWarnings({ "rawtypes" })	private static BeanCopier createBeanCopier(Class sourceClass,			Class targetClass, boolean useConverter, String cacheKey) {		BeanCopier copier = BeanCopier.create(sourceClass, targetClass,				useConverter);		cache.putIfAbsent(cacheKey, copier);		return copier;	}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表