標籤:dwz 前後台 資料轉換
前言:經常有這樣的情況,從資料庫中擷取的資料格式並不是我們想在JSP頁面上展示的,我推薦給大家以下三種方式。
資料庫sql直接轉換
有一些資料,我們可以直接通過sql直接轉換,不過一般處理格式比較單一的內容。
convert(case m.stauts when 1 then ‘啟用‘ when 2 then ‘停收新單‘ when 3 then ‘停用賬戶‘ end,char) stauts
這種形式不善於處理格式比較複雜的類型,不過便捷一次到位。
利用JSTL
JSTL的格式處理也相當不錯,這裡推薦一篇文章JSTL標籤 參考手冊
<fmt:formatNumber value="${item.order_price}" pattern="#,##0.00#"/>
這種形式需要前後台資料遵循jstl的標籤格式。
控制端進行轉換
這種方式主要是利用controller對擷取的資料進行轉換,替換為前端需要的格式,然後供最上層顯示,這裡我詳細說一下。
先看看後台資料:
id |
uid |
username |
ip |
logintime |
logoutime |
1 |
1 |
00010001 |
127.0.0.1 |
1434679452651 |
1435021823460 |
然後我們通過sql語句進行擷取未經處理資料
<select id="getMemLoginfoList" resultType="hashmap" parameterType="map">select m2.uid, convert(m2.username,char) username, m2.ip ip, m2.logintime logintime, m2.logoutime logoutime, (m2.logoutime-m2.logintime) onlinetime from loginfo</select>
然後我們通過controller進行轉換
List<HashMap> memloginfolist = this.memLoginfoMapper.getMemLoginfoList(vo, vo.createRowBounds()); for (HashMap map : memloginfolist) { String logintime = DateUtil.formatTimeMillis(map.get("logintime").toString()); String logoutime = DateUtil.formatTimeMillis(map.get("logoutime").toString()); String onlinetime = DateUtil.formatTimeInterval(map.get("onlinetime").toString()); map.put("logintime", logintime); map.put("logoutime", logoutime); map.put("onlinetime", onlinetime); }
public static String formatTimeInterval(String time) { long timeInterval = Long.parseLong(time); long day = 0; long hour = 0; long min = 0; long sec = 0; day = timeInterval / (24 * 60 * 60 * 1000); hour = (timeInterval / (60 * 60 * 1000) - day * 24); min = ((timeInterval / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (timeInterval / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); StringBuilder result = new StringBuilder(); if (day > 0) { result.append(day); result.append("天"); } if (hour > 0) { result.append(hour); result.append("時"); } if (min > 0) { result.append(min); result.append("分"); } if (sec > 0) { result.append(sec); result.append("秒"); } return result.toString(); }
最上層顯示為
這種形式處理起來比較隨意。
總結:之前我一直想寫一個自訂的jstl標籤,但是用起來更麻煩,所以就推薦上面這三種方式給大家。
dwz:資料庫到JSP的資料轉換