三秒入门Velocity模块引擎

xiaojiuaigc@163.com 发布于 2025-05-15 165 次阅读


Velocity是一个基于Java的模板引擎,可以通过特定的语法获取java对象的数据 , 填充到模板中,从而实现界面和java代码的分离 !

通过这个模板引擎可以帮助我们减轻很多重复性代码的编写

常见的应用场景:

  • Web应用程序 : 作为为应用程序的视图, 展示数据。
  • 源代码生成 : Velocity可用于基于模板生成Java源代码。
  • 自动电子邮件 : 网站注册 , 认证等的电子邮件模板。
  • 网页静态化 : 基于velocity模板 , 生成静态网页。

下面我来简单实现一下

HTML with Velocity Template Example

包含Velocity模板语法的HTML示例


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>velocity快速入门</title>
</head>
<body>

<h3>心怀梦想,坚持不懈,成功即在前方。${message}</h3>

</body>
</html>
    
Java Code Example

VelocityDemoTest Java 示例代码


public class VelocityDemoTest {

    public static void main(String[] args) throws IOException {

        // 1. 初始化模板引擎
        Properties p = new Properties();
        // 表示告诉我们去哪一个类下找对应的模板资源文件
        p.setProperty("resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        // 定义字符集
        p.setProperty("input.encoding", "UTF-8");
        
        Velocity.init(p);
        
        // 2. 获取对应的模板文件
        Template template = Velocity.getTemplate("vms/index.html.vm", "UTF-8");
        
        // 3. 指定输出位置
        FileWriter fileWriter = new FileWriter("xxxx-generator\\src\\main\\resources\\index.html");

        /**
         * 4. 合并模板和数据
         * context: 数据
         * template: 模板
         * fileWriter: 输出位置
         */
        VelocityContext context = new VelocityContext();
        context.put("message", "加油兄弟");
        template.merge(context, fileWriter);

        // 5. 关闭流
        fileWriter.close();
    }
}