• 使用 Velocity 模板引擎的 Spring Boot 应用


    使用 Velocity 模板引擎的 Spring Boot 应用

    模板引擎是构建动态内容的重要工具,特别适用于生成HTML、邮件内容、报告和其他文本文档。Velocity是一个强大的模板引擎,它具有简单易用的语法和灵活性。本文将介绍如何在Spring Boot应用中使用Velocity模板引擎,并提供示例代码。

    在这里插入图片描述

    Velocity 简介

    Velocity是一个用于生成文本输出的模板引擎。它是一种轻量级的、开源的工具,最初由Apache开发。Velocity的主要特点包括:

    • 简单的语法: Velocity使用简单的模板语法,易于学习和使用。

    • 灵活性: Velocity允许在模板中嵌套、迭代和使用条件语句,以便生成复杂的输出。

    • 模板重用: 模板可以被多次重用,从而减少了重复代码。

    • 可扩展性: Velocity可以与Java代码集成,允许在模板中调用Java方法。

    • 广泛支持: Velocity可以用于生成HTML、XML、JSON等多种文本格式。

    创建 Spring Boot 项目

    首先,确保您已经安装了Java开发环境和Maven。接下来,您可以使用Spring Initializer创建一个新的Spring Boot项目。在https://start.spring.io/上选择您的项目配置,然后生成项目并下载。

    添加 Velocity 依赖

    在生成的项目中,您需要添加Velocity的依赖。在pom.xml文件中,确保以下依赖项已经添加:

    <dependency>
        <groupId>org.apache.velocitygroupId>
        <artifactId>velocity-engine-coreartifactId>
        <version>2.3.1version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这将包括Velocity所需的所有依赖。

    创建 Velocity 模板

    接下来,您需要创建一个Velocity模板。在src/main/resources/templates目录中,创建一个名为hello.vm的Velocity模板文件:

    
    
    
        
        Hello Velocity
    
    
        

    Hello, $name!

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在上述模板中,我们定义了一个简单的HTML页面,使用Velocity语法插入了一个变量$name

    创建控制器

    现在,您可以创建一个控制器来处理Velocity模板的渲染。在src/main/java/com/example/demo包中创建一个名为HelloController的类:

    import org.apache.velocity.Template;
    import org.apache.velocity.VelocityContext;
    import org.apache.velocity.app.VelocityEngine;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    
    import javax.annotation.PostConstruct;
    import java.io.StringWriter;
    
    @Controller
    public class HelloController {
    
        private final VelocityEngine velocityEngine;
    
        public HelloController(VelocityEngine velocityEngine) {
            this.velocityEngine = velocityEngine;
        }
    
        @PostConstruct
        public void init() {
            velocityEngine.init();
        }
    
        @GetMapping("/hello")
        public String hello(Model model) {
            VelocityContext velocityContext = new VelocityContext();
            velocityContext.put("name", "Spring Boot with Velocity");
            
            Template template = velocityEngine.getTemplate("templates/hello.vm");
            StringWriter stringWriter = new StringWriter();
            template.merge(velocityContext, stringWriter);
            
            model.addAttribute("htmlContent", stringWriter.toString());
            return "hello";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    在上述代码中,我们创建了一个HelloController,它使用Velocity引擎来渲染hello.vm模板。在init方法中,我们初始化了Velocity引擎。在hello方法中,我们创建了一个VelocityContext并将name变量传递给模板。然后,我们获取模板并将模板内容合并到stringWriter中,最后将HTML内容添加到模型中。

    创建模板渲染视图

    为了显示Velocity模板渲染的内容,我们需要创建一个模板渲染视图。在src/main/resources/templates目录中,创建一个名为hello.html的HTML文件:

    DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Hello Velocitytitle>
    head>
    <body>
        <div th:utext="${htmlContent}">div>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在上述HTML文件中,我们使用Thymeleaf的th:utext属性来渲染HTML内容,该内容存储在${htmlContent}变量中。

    配置 Velocity 属性

    最后,您需要在application.properties文件中添加Velocity属性配置:

    # Velocity Configuration
    spring.velocity.resource-loader-path=classpath:/templates/
    spring.velocity.suffix=.vm
    
    • 1
    • 2
    • 3

    这些配置告诉Spring Boot在classpath:/templates/目录中查找Velocity模板文件,并指定了模板文件的后缀。

    运行应用程序

    现在,您可以运行应用程序了。使用Maven命令:

    mvn spring-boot:run
    
    • 1

    您的Spring Boot应用程序将启动并运行在默认端口(通常是8080)上。

    访问 Velocity 模板

    使用浏览器访问http://localhost:8080/hello,您将看到Velocity模板渲染的页面,页面上将显示"Hello, Spring Boot with Velocity!"。

    总结

    本文介绍了如何在Spring Boot应用程序中使用Velocity模板引擎来生成动态内容。Velocity是一个强大的模板引擎,适用于生成HTML、XML、JSON等多种文本格式的内容。通过配置Velocity引擎、创建模板和控制器,您可以轻松地将Velocity集成到Spring Boot应用中。

    以上是使用Velocity模板引擎的示例。希望这篇文章对您有所帮助,让您更好地了解如何在Spring Boot应用程序中使用Velocity来生成动态内容

  • 相关阅读:
    Go语学习笔记 - gorm使用 - 数据库配置、表新增 | Web框架Gin(七)
    【MySql】数据库的CRUD(增删查改)
    学会这几个PPT制作技巧,让同事对你刮目相看
    前端js调取摄像头并实现拍照功能
    第一批吃螃蟹的人:浙大全日制英文MBA复试经验分享
    SpringBoot:CORS是什么?SpringBoot如何解决跨域问题?
    vue3 - 使用reactive定义响应式数据进行赋值时,视图没有改变,值已经改变的解决方案
    Docker ---- network中的命令详解
    代码随想录 第八章 二叉树:二叉搜索树
    力扣 136. 只出现一次的数字
  • 原文地址:https://blog.csdn.net/stormjun/article/details/133413070