<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    城市獵人

    在一網(wǎng)情深的日子里,誰(shuí)能說(shuō)得清是苦是甜,只知道確定了就義無(wú)反顧
    posts - 1, comments - 7, trackbacks - 0, articles - 89

    BeanUtils日期轉(zhuǎn)換

    Posted on 2009-03-24 12:26 sailor 閱讀(1028) 評(píng)論(0)  編輯  收藏 所屬分類: 心得體會(huì)java
            經(jīng)過(guò)一天測(cè)試,終于實(shí)現(xiàn)了BeanUtils從String類型到Timestamp成功轉(zhuǎn)換。底層是如何實(shí)現(xiàn)的,還沒(méi)徹底了解,先將解決方案記錄下來(lái),以后再去看底層如何實(shí)現(xiàn)。
               1、寫一個(gè)日期轉(zhuǎn)換器,這個(gè)轉(zhuǎn)換器實(shí)現(xiàn)了Converter接口
     1public class DateConvert implements Converter {
     2        private Logger log = Logger.getLogger(DateConvert.class);
     3        static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// HH:mm:ss
     4        private String datePattern = "yyyy-MM-dd";
     5
     6        public DateConvert() 
     7            
     8        }
     
     9        
    10        public DateConvert(String datePattern)
    11        {
    12            this.datePattern = datePattern;
    13        }

    14    
    15        /**
    16         *  @type  需要被轉(zhuǎn)換的類型
    17         *  @value 被轉(zhuǎn)換的值
    18         */

    19        public Object convert(Class type, Object value) 
    20            
    21            if(value==null)
    22                 return null
    23            
    24            if(((String)value).trim().length()==0)
    25                return null
    26            
    27            if(value instanceof String) 
    28                try 
    29                    //解析接收到字符串 
    30                    return TimestampUtil.parseTimestamp((String)value,datePattern);   //自己寫的封裝,得到一個(gè)Timestamp實(shí)例
    31                    
    32                }
     catch (Exception ex) {
    33                    //發(fā)生解析異常
    34                    throw new ConversionException("輸入的日期類型不合乎" + datePattern + "格式" + value.getClass()); 
    35                }
     
    36            }
     else 
    37                //其他異常 
    38                throw new ConversionException("輸入的不是字符類型" + value.getClass()); 
    39            }
     
    40        }

    41}

            2、自己重寫了一個(gè)BeanUtil,用于實(shí)現(xiàn)拷貝request傳遞來(lái)的參數(shù)到Model里面,里面注冊(cè)了一個(gè)日期處理監(jiān)聽(tīng),這個(gè)組件還有待改進(jìn)
     1public class BeanUtil {
     2
     3    public void copyBean(){};
     4    
     5    /**
     6     * 將request里的參數(shù)封裝到一個(gè)Bean。如果bean里面有日期型,只是java.sql.Date,java.sql.TimeStamp類型
     7     * @param request
     8     * @param bean
     9     * @throws IllegalAccessException
    10     * @throws InvocationTargetException
    11     */

    12    public static void copyRequestPrameterToModel(HttpServletRequest request, Object bean) throws IllegalAccessException, InvocationTargetException{
    13        Map map = getRequestPrameters(request);
    14        
    15        if(map == null)
    16            return ;    
    17        
    18        ConvertUtils.register(new DateConvert(), java.sql.Timestamp.class); //注冊(cè)監(jiān)聽(tīng)
    19        BeanUtils.populate(bean, map);
    20    }
    ;
    21    
    22    /**
    23     * 從request中取出key和value封裝到Map里
    24     * @param request
    25     * @return
    26     */

    27    private static Map<String,Object> getRequestPrameters(HttpServletRequest request)
    28    {
    29        Map<String,Object> map = new HashMap<String,Object>();
    30        
    31        Enumeration enuma = request.getParameterNames();
    32        while(enuma.hasMoreElements())
    33        {
    34            String key = (String)enuma.nextElement();
    35            
    36            String value = (String)request.getParameter(key);    //獲取value
    37            
    38            //如果值為空的話,就不插入map里
    39            if(null == value || "".equals(value))
    40            {
    41                continue;
    42            }

    43            
    44            map.put(key, request.getParameter(key));
    45        }

    46        
    47        return map;
    48    }

    49}

     

       


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲中文字幕AV每天更新| 日本人护士免费xxxx视频| A级毛片高清免费视频在线播放| 美女视频黄.免费网址| 国产亚洲人成在线影院| 亚洲AV无码专区在线电影成人 | 亚洲伦乱亚洲h视频| 亚洲精品高清一二区久久| 亚洲成av人片天堂网老年人| 免费大黄网站在线观| 亚洲AV无码乱码在线观看牲色| 国产精品免费视频网站| 又粗又大又长又爽免费视频| 四虎影视在线永久免费看黄| 亚洲成a人片在线不卡一二三区 | 91亚洲国产成人久久精品网站| 91亚洲一区二区在线观看不卡| 91亚洲自偷手机在线观看| 亚洲黄色免费观看| 亚洲国产中文在线二区三区免| 亚洲人成电影网站| 亚洲国产成人久久精品大牛影视 | 亚洲AV本道一区二区三区四区| 久久亚洲AV成人出白浆无码国产| 亚洲欧洲自拍拍偷午夜色| 日韩亚洲国产高清免费视频| 老牛精品亚洲成av人片| 有色视频在线观看免费高清在线直播| 两个人看的www免费高清| 日韩精品内射视频免费观看| 99久久99这里只有免费费精品| 性感美女视频在线观看免费精品| 免费看国产一级片| 亚洲中文字幕久久精品无码APP | 亚洲欧洲日韩国产综合在线二区| 亚洲精品中文字幕乱码| 亚洲国产欧美日韩精品一区二区三区| 四虎影视在线看免费观看| 99久热只有精品视频免费看 | 国产拍拍拍无码视频免费| 在线视频观看免费视频18|