dwz:数据库到JSP的数据转换

发布时间:2017-09-09 11:05:01
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标签,但是用起来更麻烦,所以就推荐上面这三种方式给大家。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网站建设公司 https://www.jingchucn.com/zt/wuhan_wangzhanjianshe/