您的位置:首页 > 其它

velocity 格式化时间

2010-06-13 21:19 148 查看
尽管应用已经配置成可以渲染Velocity视图了,但我们还有一些杂七杂八的问题需要解决。当你比较程序清单9.1中的couseList.vm和courseList.jsp时,会注意到courseList.vm没有像courseList.jsp一样对课程的ID、开始日期和结束日期进行格式化。在courseList.jsp中,课程ID显示为一个6位定长的前面以零补齐的数字,而所有的日期以完整格式显示。为了完成courseList.vm,你需要对它作进一步的调整,对ID和日期属性进行格式化。
VTL并不直接支持日期和数字的格式化,而是通过提供日期和时间的工具类来支持格式化。为了允许使用这些工具,你需要告诉VelocityViewResolver在模板中暴露它们时使用的属性名。这些属性名是通过VelocityViewResolver的dateToolAttribute和numberToolAttribute属性来规定的:

<bean id="viewResolver" class="org.springframework.
➥web.servlet.view.velocity.VelocityViewResolver">

<property name="dateToolAttribute">
<value>dateTool</value>
</property>
<property name="numberToolAttribute">
<value>numberTool</value>
</property>
</bean>

在这里,我们规定数字工具通过numberTool属性暴露给Velocity使用。因此,要格式化课程ID,你只需要通过数字工具的format()方法来处理课程ID即可,如下:

$numberTool.format("000000", course.id)

方法format()的第一个参数是模式字符串,在这里我们规定课程ID显示为6个数字的域,必要时在前面补零。模式字符串的语法和java.text.DecimalFormat一致。请参考Velocity关于NumberTool的文档来获取更多关于该工具功能的信息。
类似地,我们分配日期工具使用dateTool属性。为了格式化课程的开始和结束日期,只需使用日期工具的format()方法:

$dateTool.format("FULL", course.startDate)
$dateTool.format("FULL", course.endDate)

与数字工具的format()方法一样,第一个参数也是模式字符串。模式字符串的语法与java.text.SimpleDateFormat一致。另外,也可以设置模式字符串为FULL、LONG、MEDIUM、SHORT或DEFAULT中的一个,以使用标准的java.text.DateFormat模式。这里我们设置模式字符串为FULL来表示完整的日期格式。请参考Velocity关于DateTool的文档来获得更多关于该工具功能的信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: