做项目过程中肯定会碰到这样一个问题:在数据库中存的是date或datetime类型的值,从数据库里取出来遍历到页面上显示的是long类型或是GTM类型的日期时间。
对于这个问题,经过研究之后有以下结论:
1.hibernate不会出现这样的问题,而mabatis则会出现这个问题。
2.数据库使用date类型的在页面上会显示long类型日期时间,使用datetime类型的在页面上会显示GTM类型日期时间。
因为我用的是mysql数据库,其他的数据库没测试过,所以也不知道其他数据库是怎样的情况,这里就针对mybatis+mysql数据库的情况来说一下我的解决方案吧。
通用解决方案:将实体类中的参数从Date类型换成String类型,一招治百病,但是如果不想通过这种方式解决的童鞋请往下看~
出现GTM时间(格林时间)的解决方案:
方案一(自定义,从后台着手解决问题):在后台把数据封装到一个Map里,key为格式化之后的时间字符串,然后在前台遍历map时,取值为{map.key}就行了。ps:自定义的解决方式,仅供参考~
方案二(推荐,从前端着手解决问题):之前没想到jstl标签库也可以格式化处理数据这一茬,所以后来还是用的这种方案。本着能在前端解决的事绝不放在后台解决,减轻服务器压力的原则,我果断的选择了这一种方法~(其实是这种方式简单,想偷懒而已...)
普通web项目引入jar包,maven项目添加jstl依赖,添加依赖可参考:
引入标签:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>