IT技术专栏 - 软件开发 - java - IT文章 - struts下应用velocity-toolbox为甚么显示明文?
struts下应用velocity-toolbox为甚么显示明文?
http://www.wenhq.com/article/view_328.html 2009-06-19 18:24:56 来源:
关键词 :
web服务器tomcat5.5,jdk6使用的框架 struts2.06 ,spring2,velocity1.5在windows和freebsd、ubuntu8上都执行正常,当放到centos5上时却显示明文,tomcat和jdk的版本都一样。
struts.property文件:
struts.velocity.toolboxlocation=/WEB-INF/classes/velocity-toolbox.xml

velocity-toolbox.xml文件中包含
  <tool>
     <key>DATETOOL</key>
     <scope>application</scope>
     <class>org.apache.velocity.tools.generic.DateTool</class>
  </tool>

正常的日期 显示:2009/06/21
不正常的日期 显示:$DATETOOL.format("yyyy/MM/dd hh:mm",$!{adddate})

原因查找,怎么会这样呢,先在页面显示 $!{adddate},结果正常,显示2009-06-01 01:02:03:01
org.apache.velocity.tools.generic.DateTool 这个类是velocity带的,应该没什么问题;
没办法,只好重写了 datetool类,然后跟踪,发现虽然format是格式化日期,但我们在页面中调用的$!{adddate}其实是作为字符串执行的,程序先调用 todate方法转化字符串为日期,转化会与系统的local,而我们以前的服务器都是zh-CN,新服务器为en-us,所以被转化为null,结果就显示了明文。
解决办法有两个:
一、修改系统的local;
二、修改程序的代码,不依赖系统的local,直接指定为zh-cn;

本文链接地址:http://www.wenhq.com/article/view_328.html
共有 人次浏览 收藏本页 返回上一页 责任编辑: wenhq
放松一下