一、了解Velocity
JSP、Freemarker、Velocity并称3大模版技术
下面是JSP、Freemarker和Velocity的简要对比表格:
| 特性/技术 | JSP | Freemarker | Velocity | 
|---|---|---|---|
| 设计目标 | 视图层技术,与Servlet结合 | 模板引擎,用于生成HTML | 模板引擎,用于生成各种文本输出 | 
| 与Java集成 | 紧密集成,可以直接编写Java代码 | 松散集成,通过模板变量和表达式访问数据 | 松散集成,通过模板变量和表达式访问数据 | 
| 语法 | 类似HTML的XML语法,可嵌入Java代码 | 自定义模板语言,简洁易懂 | 自定义模板语言,类似Freemarker | 
| 性能 | 编译后性能较好,但初次加载较慢 | 编译后性能优秀,初次加载较快 | 编译后性能较好,初次加载中等 | 
| 指令 | 指令如 <jsp:include>、<jsp:forward>等 | 自定义指令,如 <#assign>、<#if>等 | 自定义指令,如 #set、#if等 | 
| 表达式 | 支持EL表达式和JSTL标签库 | 支持丰富的表达式和函数 | 支持表达式和宏定义 | 
| 错误处理 | 依赖于Java异常处理 | 自定义错误处理机制 | 自定义错误处理机制 | 
| 学习曲线 | 较高,需要了解Java和JSP语法 | 较低,专注于模板编写 | 较低,专注于模板编写 | 
| 应用场景 | Java Web应用程序 | 报告、邮件模板、Web页面等 | 报告、邮件模板、Web页面等 | 
这个表格提供了一个简要的对比,但请注意,每个技术都有其独特的优点和适用场景。在选择使用哪种技术时,应考虑到项目的具体需求、团队的技术栈和偏好,以及技术的长期维护性和社区支持等因素。
二、入门:编写Velocity的DEMO
velocity 使用不依赖于于springboot
 <!--velocity代码生成使用模板 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId></dependency>2.1编写测试DEMO:
类位置:ruoyi-admin/src/test/java/com/ruoyi/test/utilTest/VelocityTest.java
test 测试文件下新建测试类
如下面测试类4个步骤:加载模版并将数据合并到模版
package com.ruoyi.test.utilTest;import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.io.FileWriter;
import java.io.IOException;
import java.util.Pro