将request对象map中的值封装成数据实体对象
来源:互联网 发布:四川大学网络教育吧 编辑:程序博客网 时间:2024/06/10 21:33
package com.jetsum.cms.util;import java.lang.reflect.Field;import java.text.ParseException;import java.util.Date;import javax.servlet.http.HttpServletRequest;/** * 功能:将数据封装为对象 * 作者:邵江 * 日期:2011.6.24 */public class EncapsulationObject { /** * 功能:该方法将request对象中的值封装到相应的pojo对象中 * 作者:邵江 * 时间:2011.6.24 * @param obj * @param request * @throws IllegalArgumentException * @throws IllegalAccessException * @throws ParseException */ public static void getObjectFromRequest(Object obj,HttpServletRequest request) throws IllegalArgumentException, IllegalAccessException, ParseException { Class<?> cla = obj.getClass();//获得对象类型 Field field[] = cla.getDeclaredFields();//获得该类型中的所有属性 for(int i=0;i<field.length;i++) {//遍历属性列表 field[i].setAccessible(true);//禁用访问控制检查 Class<?> fieldType = field[i].getType();//获得属性类型 String attr = request.getParameter(field[i].getName());//获得属性值 if(attr==null) {//如果属性值为null则不做任何处理,直接进入下一轮循环 continue; } /** * 根据对象中属性类型的不同,将request对象中的字符串转换为相应的属性 */ if(fieldType==String.class) { field[i].set(obj,attr); } else if(fieldType==int.class){//当转换失败时,设置0 field[i].set(obj,TypeConvertUtil.stringToInteger(request.getParameter(field[i].getName()))); } else if(fieldType==Date.class) {//当转换失败时,设置为null field[i].set(obj,TypeConvertUtil.stringToDate(request.getParameter(field[i].getName()))); } } }}