Java Web开发:Velocity模板引擎详解

需积分: 16 3 下载量 30 浏览量 更新于2024-09-09 收藏 17KB DOCX 举报
"velocity模板引擎学习资料" Velocity是一个强大的Java模板引擎,常用于Java Web开发,与FreeMarker和JSTL并称为三大标签技术。它允许开发者将业务逻辑与页面展示分离,提高代码的可维护性和效率。以下是Velocity的一些核心知识点: 一、定义变量 Velocity使用`#set`指令来定义变量,例如: ```velocity #set($awbpre = '112') #set($awbno = '89089011') #set($airwayBillNo = $awbpre + '-' + $awbno) ``` 这里的`$awbpre`和`$awbno`被赋予字符串值,`$airwayBillNo`是它们的组合。在模板中,可以使用`$`符号来引用这些变量。 二、遍历数组 Velocity支持遍历数组或列表,例如: ```velocity #set($list = ["CTU", "SHA", "LAX"]) #foreach($item in $list) $velocityCount.$item<br/> #end ``` `#foreach`循环用于遍历`$list`中的每个元素,并通过`$velocityCount`提供索引。 三、遍历HashTable 对于HashMap或其他HashTable类型的对象,可以用如下方式遍历: ```velocity #foreach($key in $table.keySet()) $key -> $table.get($key)<br/> #end ``` 这里`#foreach`遍历了HashTable的键,并通过键获取对应的值。 四、判断是否为空 Velocity提供了条件语句`#if`来检查变量是否为空,例如: ```velocity #if($orderList.orders == null || $orderList.orders.size() == 0) 订单列表为空 #else 订单列表: #foreach($order in $orderList.orders) $velocityCount: $order.id/$order.clientName/$order.amount/$order.createTime<br/> #end #end ``` 这段代码检查`$orderList.orders`是否为空或无元素。 五、数值与日期格式化 Velocity可以利用内置对象如`$dateTool`对日期进行格式化: ```velocity $dateTool.format('EEE,MMMd,yyyy', $article.getDisplayDate()) $order.createTime $date.year-$date.month-$date.day $date.format('yyyy-MM-dd HH:mm:ss') ``` `$dateTool.format`方法用于格式化日期,`$date.year`等属性用于提取日期的各个部分。 六、国际化 Velocity支持国际化(i18n)功能,通过`ResourceBundle`和`#trans`指令,可以轻松地根据用户语言切换显示内容。 七、内建对象 Velocity提供了一些内建对象,如`$context`、`$out`、`$system`等,它们提供了模板引擎的内置功能,例如`$out`用于输出内容。 八、`include`和`parse`实现模块化 `#include`和`#parse`指令用于包含其他模板文件,有助于实现页面布局的模块化。`#include`直接插入模板,而`#parse`则先解析再插入。 通过这些基本操作,开发者可以构建复杂的模板逻辑,同时保持HTML模板的简洁性。Velocity的灵活性和简洁语法使其成为Java Web开发中的一个强大工具。