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())));
}
}
}
}
将request对象map中的值封装成数据实体对象
最新推荐文章于 2022-09-11 01:14:00 发布