mysql传递数据到jsp_mysql到JSP之间数据格式转换

经常有这样的情况,从数据库中获取的数据格式并不是我们想在JSP页面上展示的,我推荐给大家以下三种mysql到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语句进行获取原始数据

select m2.uid,

convert(m2.username,char) username,

m2.ip ip,

m2.logintime logintime,

m2.logoutime logoutime,

(m2.logoutime-m2.logintime) onlinetime

from loginfo

然后我们通过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();

}

前端显示为

2e3ba1fa3f373a1b4e05c9d6677ab6cd.png

这种形式处理起来比较随意。

总结:之前我一直想写一个自定义的jstl标签,但是用起来更麻烦,所以就推荐上面这三种方式给大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值