JSF1.2中使用rich:datatable组件,在rich:column中显示日期和时间时时区信息不正确

本来没有打算写这篇文章的,但是两个月里两次遇到这个问题,因此觉得有必要写下来分享给大家。

在JSF1.2中使用rich:datatable组件,在rich:column中如果要显示日期和时间的话,如果服务器不在本地,你可能会发现日期和时间有点偏差。

代码如下:

 

 

我在7月份的时候实验室服务器放在芬兰,开发以后测试人员发现日期和时间相差近5个小时,9月份的时候实验室放在印度,测试人员报告时间相差两个多小时,我测试应该是时区不对。将日期以长格式显示以后果然发现默认使用的是GMT时区,而我们期望使用系统的默认时区,因此我们可能会想到解决办法如下,在rich:column中使用日期转换器,加上时区信息,代码如下:

 

不过测试后你会很失望的发现问题依然没 有解决,把下面这段代码

 

放在rich:column外面是没有问题的,但是在rich:column里就是不起作用,使用普通的html td,tr标签也是不起作用。

 

于是我觉得可能是f:convertDateTime组件不能嵌套过多,否则不起作用,没有办法最终只好自己写自定义的日期转换器如下:

首先,写一个自定义的日期转换器类如下:

 

其次,在JSF的faces-config.xml配置文件中配置该自定义的转换器,如下:
 
现在,重启服务器,你会惊喜地发现,时区信息配置起作用了。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值