浏览 9313 次
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-01-05
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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-01-06
昨天说要试验一下在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/ |
|
返回顶楼 | |
发表时间:2006-01-06
谢谢。
再文一下,action 中相应的property类型可以是java.util.datetime吗? |
|
返回顶楼 | |
发表时间:2006-01-06
Tin 写道 有的朋友可能没有2.2 beta5,可以去这里下载nightly build,谢谢jscud上次提供这两个链接: http://ivyrep.opensymphony.com/opensymphony/webwork/ 还有对应的xwork: http://ivyrep.opensymphony.com/opensymphony/xwork/ webwork.javascud.org 已经有daily build下载了 |
|
返回顶楼 | |
发表时间:2006-01-08
自己用的话,用ultraedit转码ASCII->UTF-8即可,不必多写一个language
|
|
返回顶楼 | |
发表时间:2006-01-09
这个应该是jscalendar发行包的问题?
在jscalendar 0.9.6版本的时候, 那个文件还是叫"calendar-zh-utf8.js" 不知道为什么到了1.0版本,反而改成一个莫名其妙的名字了 |
|
返回顶楼 | |
发表时间:2006-01-11
直接定义language有个问题,就是没办法多语言了,所以建议把文件名改为calendar-zh-utf8.js,同时修改/simple/datepicker.ftl中
<#assign jsFileName = parameters.language?default("en")> <#if jsFileName="zh"> <#assign jsFileName = jsFileName + "-utf8"> </#if> <script type="text/javascript" src="<@ww.url value="/webwork/jscalendar/lang/"/>calendar-${jsFileName}.js"></script> |
|
返回顶楼 | |