将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())));            }                    }    }}

 
原创粉丝点击