velocity 格式化时间

尽管应用已经配置成可以渲染Velocity视图了,但我们还有一些杂七杂八的问题需要解决。当你比较程序清单9.1中的couseList.vm和courseList.jsp时,会注意到courseList.vm没有像courseList.jsp一样对课程的ID、开始日期和结束日期进行格式化。在courseList.jsp中,课程ID显示为一个6位定长的前面以零补齐的数字,而所有的日期以完整格式显示。为了完成courseList.vm,你需要对它作进一步的调整,对ID和日期属性进行格式化。

VTL并不直接支持日期和数字的格式化,而是通过提供日期和时间的工具类来支持格式化。为了允许使用这些工具,你需要告诉VelocityViewResolver在模板中暴露它们时使用的属性名。这些属性名是通过VelocityViewResolver的dateToolAttribute和numberToolAttribute属性来规定的:

 

            ➥web.servlet.view.velocity.VelocityViewResolver">

  …

   

      dateTool

   

   

      numberTool

   

 

 

在这里,我们规定数字工具通过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的文档来获得更多关于该工具功能的信息。

你可能感兴趣的:(java)