Tin's Blog

You are coming a long way, baby~Thinking, feeling, memory...

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  128 随笔 :: 0 文章 :: 221 评论 :: 0 Trackbacks
文章时间: 2006-1-05 19:00:49    标题: Webwork22b5中datapicker的本地化使用方法 引用回复 编辑/删除文章 将这个帖子加入我的Blog

仅作为记录,尽量简明:
1、我使用Weblogic 8.1 SP5+Webwork 2.2 beta 5。2.2b5的Webwork已经完全转向使用jscalendar作为datapicker的js,而不是以前的tigracalendar,因为tigracalendar不支持国际化。Web项目使用FilterDispatcher,本应改可以将/webwork/*的请求拦截下来,但是它工做不正常。所以我把webwork.jar里面的\com\opensymphony\webwork\static目录拷贝到Web根目录,并将static目录重名名为webwork。
此时,你的Web根目录下面应有一个名为webwork的目录,里面有jscalendar、dojo、niftycorners这几个文件加,如果不需要其它的,可以只保留jscalendar一个目录。
2、在需要显示datapicker的地方使用如下标记<ww:datepicker name="ecoInf.turninDate" id="ecoInf.turninDate" template="datepicker.ftl" language="cn_utf8" format="%Y-%m-%d %H:%M:%S" showstime="true" />。
其中template完全可以不写。而name标明你的数据的来源。id是方便javascript访问所保留的,可以和name相同(如果有重复name,如经过iterator,则需要区别其id,保持id在html dom中唯一)。
showstime标明是否可以选择时间,可以是"true","false","24","12"。
language决定jscalendar使用的语言,参照下面说明。
3、language指定的语言其实就对应jscalendar/lang下面的语言文件,格式就是calendar-语言名.js,默认的中文使用的是zh。但是其实j2ee项目经常面对中文乱码问题,最佳解决方案就是统一使用UTF-8。但是calendar-zh.js正好不是UTF-8的,所以如果直接使用zh语言则datapicker没法正常工作。
我的解决方法是将webwork附带的jscalendar 1.0的lang里面的cn_utf8.js改名为calendar-cn_utf8.js,然后将language="cn_utf8"就工作正常了。
4、关于时间的显示格式。其实cn_utf8.js里面已经制定了时间的标准显示格式是%Y-%m-%d,符合我们的习惯。但是有时我们需要显示具体时间,参照他们网站的说明,使用format="%Y-%m-%d %H:%M:%S",这个也符合我们的习惯。

发个牢骚:
本来奇简单。但是很奇怪/webwork/*居然不能在Weblogic下自动映射,我一会而去试验下Tomcat,还有就是js解析utf-8出错造成整个js没法工作,浪费了半天时间,唉。

相关链接:
2.2 beta 5的datapicker的doc:
http://wiki.opensymphony.com/display/WW/datepicker
jscalendar的官方网站:
http://www.dynarch.com/projects/calendar/
jscalendar的使用方法简单demo:
http://www.dynarch.com/demos/jscalendar/
jscalendar下载:
http://prdownloads.sourceforge.net/jscalendar/jscalendar-1.0.zip?download
datapicker本地化的相关讨论:
http://forums.opensymphony.com/thread.jspa?messageID=21466
http://forums.opensymphony.com/thread.jspa?messageID=21526


昨天说要试验一下在tomcat下面的/webwork/*的映射是否工作正常。
经过试验在tomcat下面工作正常,所有com.opensymphony.webwork.static下面的东西都可以自动映射到/webwork/*下面。

也就是说又是Weblogic的倒霉问题……烦啊。

也就是说不用Webloigic 8.1的朋友们就可以跳过第一步了。

有的朋友可能没有2.2 beta5,可以去这里下载nightly build,谢谢jscud上次提供这两个链接:
http://ivyrep.opensymphony.com/opensymphony/webwork/
还有对应的xwork:
http://ivyrep.opensymphony.com/opensymphony/xwork/

这是一篇老帖子了,已经不是最新:
http://forum.javaeye.com/viewtopic.php?t=17936&highlight=
posted on 2006-02-16 21:15 Tin 阅读(560) 评论(0)  编辑  收藏 所属分类: Webwork相关

只有注册用户登录后才能发表评论。


网站导航: