`
Tin
  • 浏览: 138051 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Webwork 2.2.2新增的ww:date的用法

阅读更多

今天浏览WW的Wiki,结果无意发现ww:date标签的用法,挠头一想以前没有见过呀,仔细一看原来是2006/3/21才加上的。
会头看看项目发现用的ww 2.2.1中没有这个标签,心想是不是发布新版本了?
果不出所料!发现OPENSYMPHONY已经发布2.2.2了。
不过2.2.2是在Opensymphony下的最后一个版本了,以后的版本就会以Struts Action 2.0的形式发布了,而后者今年8月才发布,中间的日子估计只能靠nightly build了。
说说变化,发现增加了RichTextEditor,经考察就是我们熟悉的FCK Editor。发现还增加了nifty corners,这是一个不用images的圆角容器(css+js),估计用在了某个theme里面。还有J2SE5的支持也更加完善,现在已经可以支持泛型Collection的反射(无需-conversion文件了),还支持annotation风格的validation声名(如此像Stripes那样的Web框架就没什么可吹嘘的了)。其它的变化请参考他们的ReleaseNotes。
http://www.opensymphony.com/webwork/wikidocs/Release%20Notes.html

说说新添加的ww:date标签。很多朋友可能都认为ww:property输出date比较不如意,以前很多解决方案感觉都不够灵活。WW肯定察觉了,新增加的ww:date把玩了一下发现非常好用,所以推荐给大家。
语法非常简单:
name:你取值的ognl表达式
nice:是否使用易读(readable notations)的模式,其实就是类似conflunce里面显示时间的方式,类似“in 2 hours, 14 minutes”
format:就是我们常用的时间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文件中的方式,这个很常用:D
<ww:date name="person.birthday" nice="true" />
使用易读(readable notations)的模式
<ww:date name="person.birthday" />
使用默认的格式输出

其中显示的规则如下:
1、如果制定了nice="true"则优先以易读(readable notations)的模式显示
2、如果nice="false"则按照指定的format显示
3、如果上面两个属性都没有指定,则从默认的资源文件中寻找webwork.date.format这个i18n的key,按照它显示
4、如果还没有找到则按照DateFormat.MEDIUM格式显示
5、特别之处:如果从ValueStack没有找到值,则默认显示空白(而不是null)

就这么简单,感觉读(readable notations)模式尤其有趣,非常好用,你还可以给它指定i18n的显示方式。
下面共享一下我写的zh_cn版本,你只需要将一下内容拷贝到classpath下面的default.properties文件中就可以了(也可以按照i18的资源文件命名规则):

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 #一小时| 1 <{ 0 } 小时}{ 1 , choice , 0 #| 1 #零一分钟| 1 <零 { 1 } 分钟} 
webwork.date.format.days
= { 0 , choice , 1 #一天| 1 <{ 0 } 天}{ 1 , choice , 0 #| 1 #零一小时| 1 <零 { 1 } 小时} 
webwork.date.format.years
= { 0 , choice , 1 #一年| 1 <{ 0 } 年}{ 1 , choice , 0 #| 1 #零一天| 1 <零 { 1 } 天} 

输出的样子如:“一天零 8 小时 以前”,“4 天零 23 小时 以前”……

你也可以自己翻译,默认的key如下:
i18n文件默认为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发布兴奋之余也为它的未来有些担心,到Struts Action Framework发布还有挺久,其中的真空期很难等待呀,WW一向有些小毛病,靠nightly build改善还是很麻烦的。
2.2.2的更多功能的探索希望大家能够互相交流。

还有点补充:现在用ww:property输出Date类型的数据默认会显示到毫秒……请注意。

分享到:
评论

相关推荐

    WebWork ww标签

    WebWork的ww标签库极大地方便了开发者在JSP页面上的数据操作和逻辑控制,通过使用`&lt;ww:if&gt;`、`&lt;ww:iterator&gt;`、`&lt;ww:set&gt;`和`&lt;ww:property&gt;`等标签,开发者可以更简洁、高效地编写动态页面,减少代码量,提高开发...

    webwork标签的使用和介绍

    - `&lt;ww:i18n&gt;`:加载国际化资源包,如`&lt;ww:i18n name="ApplicationMessages"&gt;`,配合`&lt;ww:text&gt;`使用,实现多语言支持。 通过这些标签,WebWork极大地简化了JSP页面的编写,使开发者能更加专注于业务逻辑,而不是...

    webwork-2.2.2和xwork1.1.3的jar包and源代码

    这个压缩包包含的文件是WebWork 2.2.2和XWork 1.1.3版本的JAR包以及相关的源代码,这对于开发者来说是一份宝贵的参考资料。 WebWork是一个轻量级的MVC框架,它通过使用动作(Action)和结果(Result)的概念来处理...

    webwork标签

    - `&lt;ww:set&gt;`:将值设置到指定作用域(page, stack, application, session),如果没有指定作用域,则使用默认的“webwork”作用域。 - `&lt;ww:url&gt;`:生成一个编码的URL,用于防止URL注入。 2. **组件化标签**: ...

    BizFocus5.0-WebWork2.2.2技术培训

    是有关xwork培训的,BizFocus5.0是东方易维公司开发的一款优秀的中间件技术平台。

    WebWork2.2入门

    总的来说,WebWork 2.2 是一个强大且灵活的 Web 开发框架,通过理解并掌握其基本原理和使用方法,可以大大提高开发效率和代码质量。对于初学者,可以从创建第一个 Action 开始,逐步探索框架的其他高级特性。在遇到...

    webwrok iterator标签status属性使用方法

    ### WebWork Iterator 标签 Status 属性使用方法详解 在Web开发中,处理列表数据时经常需要用到迭代器来遍历并展示数据。WebWork框架提供了一个强大的`&lt;ww:iterator&gt;`标签,它允许开发者轻松地遍历集合或数组,并...

    WebWork标签库

    - **`&lt;ww:else/&gt;`**:与`&lt;ww:if/&gt;`配合使用,表示如果前一个`&lt;ww:if/&gt;`条件不满足,则执行此标签内的代码。 - **`&lt;ww:elseif/&gt;`**:多条件判断。用于在多个条件之间进行选择。 #### 迭代标签 - **`&lt;ww:iterator/&gt;...

    webwork 标签手册

    ### WebWork 标签库详解 #### 一、引言 WebWork是一个开源的轻量级Web应用框架,它提供了一套完整的MVC(Model-View-Controller)解决...熟练掌握这些标签的使用方法对于使用WebWork框架进行Web开发是非常有帮助的。

    webwork-tags-API

    类似于JSTL,WebWork-Tags也包含条件和逻辑控制标签,如`&lt;ww:if&gt;`、`&lt;ww:else&gt;`和`&lt;ww:choose&gt;`等,它们使得在JSP页面中实现复杂的逻辑判断成为可能。 6. **国际化和本地化**: WebWork-Tags API 还支持国际化和...

    webwork-reference-2.2.2.pdf

    从给定的文件信息“webwork-reference-2.2.2.pdf”中,我们可以提炼出一系列与WebWork框架相关的IT知识点。以下是对这些知识点的详细解释: ### WebWork框架概览 WebWork是一个用于Java Web应用程序开发的轻量级...

    webwork-2.2.2

    webwork的包。webwork开发者不可缺少的

    WebWork深入浅出

    WebWork2.2.2的安装过程相对简单,主要包括下载WebWork2.2.2,搭建Web应用,将所需jar文件放入WEB-INF\lib目录,并在Web.xml中配置FilterDispatcher过滤器。 WebWork入门阶段,开发者需要了解如何配置Web应用以使用...

    Webwork标签库CHM

    Webwork标签库CHM是一个关于WebWork框架中标签库的参考文档,主要针对开发者提供详细的使用指南和API信息。WebWork是一个历史悠久的Java Web开发框架,它为构建动态、交互式的Web应用程序提供了强大的支持。本资源是...

    webwork深入浅出学习资料

    其最新版本WebWork 2.2.2,在功能上更加强大,且已发展成为Xwork和WebWork两个独立项目。Xwork主要负责提供核心功能,如前端拦截器、表单属性验证、类型转换、表达式语言(OGNL)、IoC容器等,而WebWork则专注于处理...

    WebWork类型转换

    然而,在使用WebWork时,如果没有使用泛型,则需要在WebWork配置文件中进行相应的配置。例如,在处理多个用户对象的创建时,可以通过在页面上设置多个文本框来接收用户的输入信息,并通过表单提交给服务器端进行处理...

    webwork中使用datepicker标签来选择日期

    本文将深入探讨如何在WebWork中使用`datepicker`标签来实现用户友好的日期选择功能。 `datepicker`标签通常与JavaScript库如jQuery UI的Datepicker组件结合使用,它允许用户通过一个交互式的日历来选择日期,而不是...

    webwork所需要的包

    WebWork是一个基于Java的轻量级MVC(Model-View-Controller)框架,它在早期的Web开发中被广泛使用,提供了丰富的功能和强大的动作调度。这个压缩包包含的是一组经过验证可用的WebWork所需的JAR文件,避免了用户在...

Global site tag (gtag.js) - Google Analytics