1. Velocity中仅有String可以被赋值给变量。
2. 单行注释:## This is a single line comment.
3. 多行注释:
#*
Thus begins a multi-line comment. Online visitors won't
see this text because the Velocity Templating Engine will
ignore it.
*#
4. $customer.Address有两种含义。它可以表示:查找hashtable对象customer中以Address为关键字的值;也可以表示调用customer对 象的getAddress()方法。
5. reference的正是格式如下:
${mudSlinger} 变量
${customer.Address} 属性
${purchase.getAddress()} 方法 和属性一样,但是方法可以指定参数,而属性不能。
6. VTL中的reference总是以一个大写或者小写的字母开始。
7. VTL中使用"\"作为逃逸符。
8. 注意:VTL中未被定义的变量将被认为是一个字符串,
9. 赋值左侧的(LHS)必须是一个变量或者属性reference。
右侧(RHS)可以是以下类型中一种:
l 变量reference
l String literal
l 属性reference
l 方法reference
l number literal
l ArrayList
10. 如果你的RHS是一个null,VTL的处理将比较特殊:它将指向一个已经存在的reference,这对初学者来讲可能是比较费解的。
11. Velocity有AND、OR和NOT逻辑运算符。
#if( $foo && $bar )
#if ( $foo || $bar )
#if ( !$foo )
12. Foreach循环 :
#foreach ( $product in $allProducts )
<li> $product </li>
#end
如果$product是一个java的Product类,并且这个产品的名字可以通过调用他的getName()方法得到。
现在我们假设$allProducts是一个Hashtable,如果你希望得到它的key应该像下面这样:
<ul>
#foreach ( $key in $allProducts.keySet() )
<li>Key: $key -> Value: $allProducts.get($key) </li>
#end
</ul>
13. Velocity还特别提供了得到循环次数的方法:
<table>
#foreach ( $customer in $customerList )
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#end
</table>
$velocityCount变量的名字是Velocity默认的名字,你也可以通过修改velocity.properties文件来改变它。默认情况下,计数从"1"开始,但是你可以在velocity.properties设置它是从"1"还是从"0"开始。
13. include
#include script element允许模板设计者引入本地文件。被引入文件的内容将不会通过模板引擎被render。为了安全的原因,被引入的本地文件只能在TEMPLATE_ROOT目录下。
#inclued ( "one.txt" )
如果您需要引入多个文件,可以用逗号分隔就行:
#include ( "one.gif", "two.txt", "three.htm" )
在括号内可以是文件名,但是更多的时候是使用变量的:
#inclue ( "greetings.txt", $seasonalstock )
14. parse
#parse script element允许模板设计者一个包含VTL的本地文件。Velocity将解析其中的VTL并render模板。
#parse( "me.vm" )任何由#parse指向的模板都必须包含在TEMPLATE_ROOT目录下。与#include不同的是,#parse只能指定单个对象。
你可以通过修改velocity.properties文件的parse_direcive.maxdepth的值来控制一个template可以包含的最多#parse的个数――默 认值是10。
15. Stop:
#stop script element允许模板设计者停止执行模板引擎并返回。把它应用于debug是很有帮助
e.g: #stop
16. Velocimacros
#macro script element允许模板设计者定义一段可重用的VTL template。例如:
#macro ( d )
<tr><td></td></tr>
#end
在上面的例子中Velocimacro被定义为d,然后你就可以在任何VTL directive中以如下方式调用它:
#d()
17. Velocimacro,一个参数是color另一个参数是array:
#macro ( tablerows $color $somelist )
#foreach ( $something in $somelist )
<tr><td bgcolor=$color>$something</td</tr>
#end
#end
分享到:
相关推荐
该文档为velocity学习笔记,包含一些常见问题
velocity学习笔记与struts2整合 velocity学习笔记与struts2整合 velocity学习笔记与struts2整合
自己学习velocity时用的语法笔记,适合初学者
velocity笔记,自己学习的时候弄的
Velocity学习资料,从网上找到的其中学习笔记由个人编写,希望大家借鉴,后续继续完善中。
支持更多视图技术(JSP(转译java文件,编译成class文件,才可以运行)、(模板技术,html,把数据和模板html一起以流方式输出)FreeMarker、Velocity) 基于AOP(面向切面编程)思想的拦截器机制,更易扩展(不修改源代码的...
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
可以配合使用第三方 JavaScript 动画库,如 Velocity.js 单元素/组件的过度 Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加 entering/leaving 过渡 条件渲染 (使用 v-if) 条件展示...
这是在淘宝实习期间,自己记录的一些日常学习的东西。
对比《大数据》,结合平时工作和学习的实际情况,我认为最少应该认真思考和解决好三个问题: 大数据读书笔记全文共9页,当前为第2页。 一、提供什么样的数据? 大数据读书笔记全文共9页,当前为第2页。 在中国,...