Tin's Blog

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 221 評(píng)論 :: 0 Trackbacks

          今天瀏覽WW的Wiki,結(jié)果無意發(fā)現(xiàn)ww:date標(biāo)簽的用法,撓頭一想以前沒有見過呀,仔細(xì)一看原來是2006/3/21才加上的。
          會(huì)頭看看項(xiàng)目發(fā)現(xiàn)用的ww 2.2.1中沒有這個(gè)標(biāo)簽,心想是不是發(fā)布新版本了?
          果不出所料!發(fā)現(xiàn)OPENSYMPHONY已經(jīng)發(fā)布2.2.2了。
          不過2.2.2是在Opensymphony下的最后一個(gè)版本了,以后的版本就會(huì)以Struts Action 2.0的形式發(fā)布了,而后者今年8月才發(fā)布,中間的日子估計(jì)只能靠nightly build了。
          說說變化,發(fā)現(xiàn)增加了RichTextEditor,經(jīng)考察就是我們熟悉的FCK Editor。發(fā)現(xiàn)還增加了nifty corners,這是一個(gè)不用images的圓角容器(css+js),估計(jì)用在了某個(gè)theme里面。還有J2SE5的支持也更加完善,現(xiàn)在已經(jīng)可以支持泛型Collection的反射(無需-conversion文件了),還支持annotation風(fēng)格的validation聲名(如此像Stripes那樣的Web框架就沒什么可吹噓的了)。其它的變化請參考他們的ReleaseNotes。
          http://www.opensymphony.com/webwork/wikidocs/Release%20Notes.html

          說說新添加的ww:date標(biāo)簽。很多朋友可能都認(rèn)為ww:property輸出date比較不如意,以前很多解決方案感覺都不夠靈活。WW肯定察覺了,新增加的ww:date把玩了一下發(fā)現(xiàn)非常好用,所以推薦給大家。
          語法非常簡單:
          name:你取值的ognl表達(dá)式
          nice:是否使用易讀(readable notations)的模式,其實(shí)就是類似conflunce里面顯示時(shí)間的方式,類似“in 2 hours, 14 minutes”
          format:就是我們常用的時(shí)間format,例如“yyyy-MM-dd hh:mm”
          id:就是HTML中的元素id

          使用起來如下,官方的例子:
          <ww:date name="person.birthday" format="dd/MM/yyyy" />
          按照“dd/MM/yyyy”格式顯示
          <ww:date name="person.birthday" format="%{getText('some.i18n.key')}" />
          將format定義到i18n文件中的方式,這個(gè)很常用:D
          <ww:date name="person.birthday" nice="true" />
          使用易讀(readable notations)的模式
          <ww:date name="person.birthday" />
          使用默認(rèn)的格式輸出

          其中顯示的規(guī)則如下:
          1、如果制定了nice="true"則優(yōu)先以易讀(readable notations)的模式顯示
          2、如果nice="false"則按照指定的format顯示
          3、如果上面兩個(gè)屬性都沒有指定,則從默認(rèn)的資源文件中尋找webwork.date.format這個(gè)i18n的key,按照它顯示
          4、如果還沒有找到則按照DateFormat.MEDIUM格式顯示
          5、特別之處:如果從ValueStack沒有找到值,則默認(rèn)顯示空白(而不是null)

          就這么簡單,感覺讀(readable notations)模式尤其有趣,非常好用,你還可以給它指定i18n的顯示方式。
          下面共享一下我寫的zh_cn版本,你只需要將一下內(nèi)容拷貝到classpath下面的default.properties文件中就可以了(也可以按照i18的資源文件命名規(guī)則):

          webwork.date.format.past = { 0 }?以前
          webwork.date.format.future
          = 在?{ 0 }?
          webwork.date.format.seconds
          = 幾秒鐘前?
          webwork.date.format.minutes
          = { 0 , choice , 1 #一分鐘| 1 <{ 0 }?分鐘}?
          webwork.date.format.hours
          = { 0 , choice , 1 #一小時(shí)| 1 <{ 0 }?小時(shí)}{ 1 , choice , 0 #| 1 #零一分鐘| 1 <零?{ 1 }?分鐘}?
          webwork.date.format.days
          = { 0 , choice , 1 #一天| 1 <{ 0 }?天}{ 1 , choice , 0 #| 1 #零一小時(shí)| 1 <零?{ 1 }?小時(shí)}?
          webwork.date.format.years
          = { 0 , choice , 1 #一年| 1 <{ 0 }?年}{ 1 , choice , 0 #| 1 #零一天| 1 <零?{ 1 }?天}?

          輸出的樣子如:“一天零 8 小時(shí) 以前”,“4 天零 23 小時(shí) 以前”……

          你也可以自己翻譯,默認(rèn)的key如下:
          i18n文件默認(rèn)為default.properties

          webwork.date.format.past = { 0 }?ago?
          webwork.date.format.future
          = in?{ 0 }?
          webwork.date.format.seconds
          = an?instant?
          webwork.date.format.minutes
          = { 0 , choice , 1 #one?minute| 1 <{ 0 }?minutes}?
          webwork.date.format.hours
          = { 0 , choice , 1 #one?hour| 1 <{ 0 }?hours}{ 1 , choice , 0 #| 1 # , ?one?minute| 1 < , ?{ 1 }?minutes}?
          webwork.date.format.days
          = { 0 , choice , 1 #one?day| 1 <{ 0 }?days}{ 1 , choice , 0 #| 1 # , ?one?hour| 1 < , ?{ 1 }?hours}?
          webwork.date.format.years
          = { 0 , choice , 1 #one?year| 1 <{ 0 }?years}{ 1 , choice , 0 #| 1 # , ?one?day| 1 < , ?{ 1 }?days}?

          為2.2.2的Webwork發(fā)布興奮之余也為它的未來有些擔(dān)心,到Struts Action Framework發(fā)布還有挺久,其中的真空期很難等待呀,WW一向有些小毛病,靠nightly build改善還是很麻煩的。
          2.2.2的更多功能的探索希望大家能夠互相交流。

          還有點(diǎn)補(bǔ)充:現(xiàn)在用ww:property輸出Date類型的數(shù)據(jù)默認(rèn)會(huì)顯示到毫秒……請注意。

          posted on 2006-03-28 20:00 Tin 閱讀(2586) 評(píng)論(3)  編輯  收藏 所屬分類: Webwork相關(guān)

          評(píng)論

          # re: Webwork 2.2.2新增的ww:date的用法 2006-03-29 13:23 艾塵
          RichTextEditor 的標(biāo)簽在的我Firefox下無法編輯。。只能用IE。哎。。  回復(fù)  更多評(píng)論
            

          # re: Webwork 2.2.2新增的ww:date的用法 2006-03-31 11:43 Tin
          RichTextEditor其實(shí)就是FCK Editor,在FF應(yīng)該是可以使用的。
          你可以看看是不是你的設(shè)置出了什么問題。  回復(fù)  更多評(píng)論
            

          # re: Webwork 2.2.2新增的ww:date的用法 2007-11-24 15:01 阿連
          RichTextEditor 標(biāo)簽有個(gè) checkBrowser 屬性,自動(dòng)檢查瀏覽器版本,設(shè)置了么?  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 长沙市| 图们市| 那坡县| 五家渠市| 定结县| 南昌县| 城步| 娱乐| 黑龙江省| 喀喇| 乌海市| 多伦县| 绍兴县| 巴南区| 青海省| 广河县| 沐川县| 修文县| 临清市| 西乌珠穆沁旗| 贺州市| 永吉县| 正镶白旗| 北川| 柳州市| 桦南县| 九台市| 仁怀市| 遂川县| 清徐县| 鹰潭市| 桑日县| 长宁区| 上蔡县| 绥德县| 桓仁| 荃湾区| 翁牛特旗| 怀宁县| 建瓯市| 台山市|