目录
2、在resources文件夹下创建vm软件包,创建test.vm测试,编写测试内容
7、后面还有引用等其它语法,我用不上就不介绍了,用到再自己去查
一、概念
1、velocity简介
Velocity是Apache软件基金会下的一个开源模板引擎项目。它旨在简化Java应用程序的开发,生成动态内容。Velocity提供了一种将数据与静态模板分离的机制,开发人员可以创建包含占位符的模板文件,并将变量和逻辑表达式嵌入到模板中。然后,通过将数据与模板结合,动态地替换占位符,生成最终的文本输出。
2、使用场景
代码生成、邮件短信、文章等
二、快速入门
1、创建maven模块,引入依赖
<!--velocity代码生成使用模板 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
2、在resources文件夹下创建vm软件包,创建test.vm测试,编写测试内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
hello , ${name} !
</body>
</html>
3、核心测试代码
@Test
public void test1() throws IOException {
//1-设置velocity资源加载器
Properties prop = new Properties();
prop.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
//2-初始化加载器
Velocity.init(prop);
//3-创建Velocity容器,向容器内放入数据
VelocityContext context = new VelocityContext();
context.put("name", "会敲代码的七七");
//4-加载静态模板,改成自己resourse下的目录
Template tpl = Velocity.getTemplate("vm/test.vm", "UTF-8");
//5-输出结果,自己改输出文件路径 注意:以.html结尾,只有文件夹路径会报错,拒绝访问是盘符权限不够。
FileWriter fw = new FileWriter("E:\\velocity\\test.html");
//6-合并数据到模板
tpl.merge(context, fw);
//7-释放资源
fw.close();
}
4、找到目录文件查看测试结果
三、VTL核心语法
上面快速入门后,我们来了解下velocity的语法VTL,全称Velocity Template Language,是一种模板语言。
1、注释
了解个单行注释就够用了
单行注释:##
2、非解析内容
##不会将数据插入模板,相当于个字符串
#[[
${name}
]]#
3、引用
##变量引用,从容器获取对象,$符号后面加个!调用失败后会返回空字符串
${字符串对象}
${对象.属性}
${对象.方法}
4、定义变量
#set($str = "七七")
#set($map = {"key1":"value1", "key2":"value2"})##调用map
${map.key1}
5、if判断
#if($test.equals("1"))
1
#elseif($test.equals("2"))
2
#else
3
#end
6、foreach遍历
##遍历集合数组
#foreach($str in $hobbies)
${foreach.index} -- ${str} <br>
#end##遍历map两种方式
#foreach($value in $map)
$value
#end
#foreach($entry in $map.entrySet())
$entry.key -- $entry.value
#end