• 重学SpringBoot3-集成FreeMarker


    更多SpringBoot3内容请关注我的专栏:《SpringBoot3》
    期待您的点赞👍收藏⭐评论✍

    freemarker主页

    FreeMarker 是一个用于生成文本输出(如 HTML 网页、电子邮件、配置文件、源代码等)的 Java 府模板引擎。它遵循 MVC 模式,将业务逻辑和表现层分离。FreeMarker 模板使用 FreeMarker Template Language (FTL) 编写,这是一种简单、专用的语言。在 Spring Boot 3 中集成 FreeMarker 作为模板引擎是一个简单直接的过程,Spring Boot 的自动配置功能大大简化了配置工作。以下是将 FreeMarker 集成到 Spring Boot 应用的基本步骤:

    1. 添加 FreeMarker 依赖

    首先,你需要在项目的 pom.xml 文件中添加 FreeMarker 的依赖。Spring Boot 会自动配置 FreeMarker 以及与之相关的视图解析器,只要它发现 FreeMarker 在类路径上。

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-freemarkerartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4

    2. 配置 FreeMarker 属性(可选)

    虽然 Spring Boot 提供了合理的默认配置,但你可能想要根据需要调整一些属性。你可以在 application.propertiesapplication.yml 文件中设置 FreeMarker 的配置。例如,你可以设置模板的存储位置、字符集等:

    # application.properties
    spring.freemarker.template-loader-path=classpath:/templates/
    spring.freemarker.suffix=.ftl
    spring.freemarker.charset=UTF-8
    spring.freemarker.check-template-location=true
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3. 创建 FreeMarker 模板

    src/main/resources/templates/ 目录下创建 FreeMarker 模板文件。例如,创建一个名为 welcome.ftl 的模板文件:

    DOCTYPE html>
    <html>
    <head>
        <title>Welcometitle>
    head>
    <body>
        <h1>Welcome ${name}!h1>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4. 编写控制器

    创建一个控制器来处理请求并返回模板视图。在控制器方法中,你可以添加模型数据,这些数据将传递给 FreeMarker 模板。

    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @Controller
    public class WelcomeController {
    
        @GetMapping("/welcome")
        public String welcome(Model model) {
            model.addAttribute("name", "Spring Boot");
            return "welcome";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在上面的示例中,控制器方法 welcome 返回 welcome 视图,并向模型中添加一个名为 name 的属性。FreeMarker 模板将使用这个属性来渲染页面。

    5. 运行应用程序

    运行你的 Spring Boot 应用程序,访问对应的 URL(例如 http://localhost:8080/welcome),你将看到 FreeMarker 渲染的页面,其中包含从控制器传递的数据。

    FreeMarker 基本语法

    以下是 FreeMarker 基本语法的概述:

    数据模型

    FreeMarker 通过数据模型与模板交互。数据模型是由键值对组成的,其中键是字符串,而值可以是简单类型(字符串、数字、布尔值等)、序列(列表、数组)或映射(map)。

    变量

    在模板中,你可以通过 ${variableName} 语法来访问数据模型中的变量。

    Hello, ${name}!
    
    • 1

    条件判断

    FreeMarker 提供了 ifelse 语句用于条件判断。

    <#if score >= 60>
        Passed
    <#else>
        Failed
    #if>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    循环

    使用 list 指令来遍历序列(列表、数组)。

    <#list users as user>
        ${user.index}. ${user.name}<br/>
    #list>
    
    • 1
    • 2
    • 3

    包含其他模板

    可以使用 include 指令来包含其他模板文件。

    <#include "header.ftl">
    
    • 1

    宏(Macro)

    宏允许你定义可重用的模板片段。

    定义宏:

    <#macro welcome user>
        Hello, ${user}!
    #macro>
    
    • 1
    • 2
    • 3

    使用宏:

    <@welcome user="John"/>
    
    • 1

    赋值

    在模板中可以使用 assign 指令来赋值变量。

    <#assign x = 10>
    
    • 1

    内建函数

    FreeMarker 提供了许多内建函数用于字符串处理、数学运算等。

    ${"FreeMarker".lower_case()}
    
    • 1

    注释

    FreeMarker 的注释可以使用 <#-- 注释内容 --\>

    <#-- 这是一个注释 -->
    
    • 1

    转义

    如果需要输出 ${ 这种字符,可以使用 \$ 或者 <@ 来转义。

    \${${variable}}
    
    • 1

    总结

    通过上述步骤,可以轻松地将 FreeMarker 集成到 Spring Boot 3 应用中。Spring Boot 的自动配置特性使得这个过程变得非常简单,几乎不需要手动配置。不过,如果需要,仍然可以通过 application.propertiesapplication.yml 文件自定义 FreeMarker 的各种属性。

  • 相关阅读:
    运算符重载
    [S2] Challenge 25 心脏病预测
    解析Facebook对当代文化传播的影响力
    python_视频中语音识别转出文本
    openfeign、nacos获取接口提供方真实IP
    Vuex
    29_content 阶段的concat 模块
    Vue3 Element-UI中使用ECharts(前端数据展示开发)
    np.ravel()和np.flatten()
    探索性数据分析EDA的数据可视化
  • 原文地址:https://blog.csdn.net/u014390502/article/details/136613892