Velocity 是一个基于Java的模板引擎(template engine). 它可以让视图的设计者在web 页面中引用java 代码中定义的数据对象和命令。
项目架构:
注意:springboot版本使用1.4.7版的,因为高版本的springboot不支持velocity了
添加依赖:在pom.xml文件中添加对web项目支持和Velocity整合的依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-velocity
在application.yml添加配置
spring:
velocity:
cache: false
charset: utf-8
check-template-location: true
content-type: text/html
enabled: true
prefix: /templates/
suffix: .vm
toolbox-config-location: /toolbox.xml
(最后一个是配置一个toolbox.xml配置文件,配置日期转换等)
controller层添加测试:
在templates文件夹下添加index.vm页面
上图中日期的处理需要配置一个toolbox.xml配置文件,内容如下:
velocity中常见的语法
在上图中添加了字符串、对象集合、map等不同的数据类型,然后编写list.vm文件,内容如下:
字符串类型
hello! $!name(#if($!sex == '1')先生#else女士#end),$!msg <h1>set操作(定义变量)</h1>
#set($su = '你好,我是定义的变量')
$!su
<h1>普通的for循环</h1>
#foreach($!string in $!strings)
$!string,
#end
<h1>对象for循环</h1>
<table border="1">
<tr><td>编号</td><td>姓名</td><td>年龄</td></tr>
#foreach($!people in $!peopleList)
<tr>
<td>$!people.id</td>
<td>$!people.name</td>
<td>$!people.age</td>
</tr>
#end
</table>
<h1>map集合for循环</h1>
<table border="1">
<tr><td>编号</td><td>姓名</td><td>年龄</td></tr>
#foreach($!people in $!peopleMap.keySet())
<tr>
<td>$!peopleMap.get($people).id</td>
<td>$!peopleMap.get($people).name</td>
<td>$!peopleMap.get($people).age</td>
</tr>
#end
</table>
<h1>include包含页面</h1>
#parse("index.vm")
#include("index.vm")
</body>
效果如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200722172247991.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQyMDY2Mw==,size_16,color_FFFFFF,t_70) 比较常用的velocity语法介绍到这里了,最后对比一下#parse 和 #include的区别: #parse 和 #include 指令的功能都是在外部引用文件,而两者的区别是,#parse 会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析,#include 是将引入文件当成资源文件,会将引入内容原封不动地以文本输出。