大家都知道,資料庫中的時間是Date類型,而在頁面中往往要顯示yyyy-mm-dd格式,並且,時間對象在從JSP頁面傳遞到前台Controller、後台Service往往要藉助JSONObject,JSONObject只支援String類型。所以時間對象的儲存和取出顯示都涉及到Date到String的轉化。
假設我們的需求是,取得一個系統時間儲存到資料庫的表time中,然後再取出在頁面中顯示。那麼,Controller從JSP頁面接收輸入的時間後要將時間轉換為String類型以便於加到JSONObject中傳遞到後台。是這樣做的:
Date date=new Date();
DateFormat dateFormat = new impleDateFormat(“yyyy-MM-dd”);
String addTime = dateFormat.format(date);
time.put(“addTime”,addTime)
那麼從資料庫中取出來,從而在頁面中顯示怎麼做呢?
同樣的道理,Controller通過後台服務得到time集合的結果集,然後將其轉換為String類型傳到JSP頁面顯示。
DateFormat dateFormat = new impleDateFormat(“yyyy-MM-dd”);
String addTime = dateFormat.format(time.getAddTime());
現在我們思考,如果需求是,時間作為一列,表中還有其他欄位,我們要查詢這一張表,那該怎麼做。我們通過服務取得對象的集合,假設表名稱是courseMappingVO,那麼返回courseMappingVOList,並將其作為結果集傳到JSP頁面。那麼時間怎麼正常顯示呢?
就算時間不是作為表中的一列,而是作為一張表中的唯一一列,在Controller裡面也不容易轉換(轉換當然不困難)後傳到JSP頁面顯示。更何況是一張表中的一列,所以我們得思考能不能在JSP頁面中轉換,那樣就不會為如何傳遞結果而犯愁了。答案是有的:同樣是將courseMappingVoList作為結果傳到JSP頁面,JSP頁面顯示結果的代碼如下:
這樣,時間就正常顯示為yyyy-mm-dd的格式了。筆者測試頁面如下: