程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> dwz:數據庫到JSP的數據轉換

dwz:數據庫到JSP的數據轉換

編輯:關於JSP

dwz:數據庫到JSP的數據轉換


前言:經常有這樣的情況,從數據庫中獲取的數據格式並不是我們想在JSP頁面上展示的,我推薦給大家以下三種方式。

數據庫sql直接轉換

有一些數據,我們可以直接通過sql直接轉換,不過一般處理格式比較單一的內容。

convert(case m.stauts when 1 then '啟用' when 2 then '停收新單' when 3 then '停用賬戶' end,char) stauts

這種形式不善於處理格式比較復雜的類型,不過便捷一次到位。

利用JSTL

JSTL的格式處理也相當不錯,這裡推薦一篇文章JSTL標簽 參考手冊

這種形式需要前後台數據遵循jstl的標簽格式。

控制端進行轉換

這種方式主要是利用controller對獲取的數據進行轉換,替換為前端需要的格式,然後供前端顯示,這裡我詳細說一下。

先看看後台數據:

id uid username ip logintime logoutime 1 1 00010001 127.0.0.1 1434679452651 1435021823460

 



然後我們通過sql語句進行獲取原始數據

 

 



然後我們通過controller進行轉換

 

List 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標簽,但是用起來更麻煩,所以就推薦上面這三種方式給大家。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved