僅作為記錄,盡量簡明: 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 |