velocity使用(一)--简介
来源:互联网 发布:网络犯罪的相关罪名 编辑:程序博客网 时间:2024/06/05 05:59
一、velocity简介
velocity是基于java的模板引擎,分离了java代码与页面。velocity还提供了模板语言vtl(velocity template language),
从而可以方便地对数据访问或者格式化。相对于jsp,velocity不允许在模板中放java代码的。
二、下载
windows下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache//velocity/engine/1.7/velocity-1.7.zip
linux下载地址http://mirrors.tuna.tsinghua.edu.cn/apache//velocity/tools/2.0/velocity-tools-2.0.tar.gz
三、velocity基本规则
在模板vtl中,有一些基本的规则,如下:
a)引用的前面是用$,表示获取或临时存储数据;
b)指令的前面是#,表示执行相关的操作;
c)模板中单独使用变量时,表示将变量的内容输出,如$a;
d)\为转义字符,表示不将后序元素当变量,如\$a
e)变量无值时,如果希望空白显示,可使用$!a,即在$后加!
f)单行注释用## ,多行注释,用#* *#
g)vtl中的变量标识符必须以字母开头
四、常用指令
1、#set
用于变量赋值,注意,双引号内的引用会被解析,单引号的引用不会被解析,如
#set( $a = 1)
#set( $list = ["a","b","c"] )
#set ($a = "$b+$c" )
#set($a = '$b+$c' )
2、#if / #elseif / #else / #end
条件判断语句,如
#if($a>1)
a>1
#end
3、#foreach
循环指令,格式如 #foreach($ref1 in $ref2) [statement] #end ,如
#foreach ($t in $list)
$t
#end
4、#include
包含指令,导入本地文件,同时模板引擎并不处理导入文件的内容,可包含多个,中间用逗号分隔,如:
#include("one.gif“,”two.txt",$threefile)
5、#parse
解析指令,相对#include的,#parse可以对包含的文件,通过模板引擎进行解析,不过包含的文件只能有一个,不能多个。
如:
#parse("a.vm")
6、#stop
停止指令,即停止模板引擎的执行,可用于程序调试,注意不用能在#if和#foreach中使用
7、#macro
宏指令,可用于定义代码段,宏内还可以带参数,
a)不带参数的宏,如
定义宏
#macro(t)
<span>yes</span>
#end
使用宏
#foreach
#t()
#end
b)带参数的宏,如
定义宏
#macro(t $p)
<span>$p</span>
#end
使用宏
#foreach
#t("yse")
#end
五、配置文件velocity.properties配置文件velocity.properties位于下载包的velocity-1.7\src\java\org\apache\velocity\runtime\defaults路径下,
接下来介绍velocity.propertis中的常用配置。
1、日志记录
runtime.log = velocity.log ,日志记录的位置,可绝对路径,也可相对路径
runtime.log.logsystem.class ,日志记录所使用的类
runtime.log.invalid.references = true ,当一个引用无效时,关闭日志输出
2、字符编码
input.encoding=UTF-8 ,输入(模板)的字符编码,可用于改变模板文件中的字符编码
output.encoding=UTF-8,输出的字符编码
3、#foreach指令
directive.foreach.counter.name = velocityCount ,foreach指令中的计数器名称,通过$velocityCount访问
directive.foreach.counter.initial.value = 1 ,计数器初始值,默认为1
directive.foreach.iterator.name = velocityHasNext ,是否有下一个元素的名称
4、#set指令
directive.set.null.allowed = false ,是否允许设置为null
5、#include指令
directive.include.output.errormsg.start = <!-- include error :
directive.include.output.errormsg.end = see error log -->
#include指令出现问题时,错误信息的开始标记和结束标记,只有都定义了,错误信息才会输出,格式为".start msg .end"
6、#parse指令
directive.parse.max.depth = 10 , 定义解析的最大深度
7、模板加载配置
resource.loader = file ,模板加载类型,默认为文件,可定义多个
file.resource.loader.description = Velocity File Resource Loader ,文件加载器描述
file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader ,文件加载器类
file.resource.loader.path = . ,文件模板路径
file.resource.loader.cache = false ,是否使用文件模板缓存
file.resource.loader.modificationCheckInterval = 2 ,检查文件模板修改的时间间隔
string.resource.loader.description = Velocity String Resource Loader 字符串加载器描述
string.resource.loader.class = org.apache.velocity.runtime.resource.loader.StringResourceLoader 字符串加载器类
8、自定义指令
userdirective=com.dragon.velocitystudy.velocity.CacheDirective ,自定义指令
- velocity使用(一)--简介
- 【模板引擎】Velocity教程(一)简介
- velocity的使用简介
- Velocity用户指南(一)
- Velocity简介
- Velocity简介
- Velocity简介
- Velocity简介
- Velocity简介
- Velocity简介
- Velocity 布局laytou功能(一)-Velocity使用详解
- velocity.js学习(一)
- Velocity学习笔记3——Velocity 模板语言(VTL: Velocity Template Language)简介
- ftrace使用简介(一)
- 简介Gson使用(一)
- Lucene 使用(一)简介
- velocity使用(二)--velocity与spring整合
- Velocity 使用
- 错误的概念与处理 调试原理、工具和方法
- STL删除迭代器
- 嵌入式工具——smartmontools
- Java 实现 word文件添加 图片水印 jacob.jar
- C#两个DataTable拷贝问题:该行已经属于另一个表的解决方法
- velocity使用(一)--简介
- 李宏毅机器学习课程4~~~分类:概率生成模型
- VisualVM java监控工具
- HDU 6046 hash(搜索标识)
- 1011 Regular polygon 6055之神奇的count与[]
- 一些css选择器的使用
- PCIe学习笔记(27)--- PL
- iOS 下拉刷新-自定义
- Eclipse技巧