重学SpringBoot3-集成FreeMarker

本文介绍了如何在SpringBoot3中集成FreeMarker模板引擎,包括添加依赖、配置选项、创建模板、编写控制器和理解FreeMarker基本语法。SpringBoot的自动配置使过程简化,适合初学者学习和实践。
摘要由CSDN通过智能技术生成

更多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.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

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

3. 创建 FreeMarker 模板

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

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome ${name}!</h1>
</body>
</html>

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";
    }
}

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

5. 运行应用程序

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

FreeMarker 基本语法

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

数据模型

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

变量

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

Hello, ${name}!

条件判断

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

<#if score >= 60>
    Passed
<#else>
    Failed
</#if>

循环

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

<#list users as user>
    ${user.index}. ${user.name}<br/>
</#list>

包含其他模板

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

<#include "header.ftl">

宏(Macro)

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

定义宏:

<#macro welcome user>
    Hello, ${user}!
</#macro>

使用宏:

<@welcome user="John"/>

赋值

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

<#assign x = 10>

内建函数

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

${"FreeMarker".lower_case()}

注释

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

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

转义

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

\${${variable}}

总结

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

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot可以集成Freemarker作为视图格式,以便在Spring MVC中使用。为了创建一个Spring Boot Freemarker工程并测试模板,你需要执行以下步骤: 1. 创建一个测试工程,并在pom.xml文件中添加必要的依赖项。其中包括以下依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> ``` 2. 创建一个Controller类,在这个类中将需要的数据添加到Map中,并返回模板文件的名称。例如: ``` @Controller public class HelloController { @GetMapping("/basic") public String test(Model model) { // 纯文本形式的参数 model.addAttribute("name", "freemarker"); // 实体类相关的参数 Student student = new Student(); student.setName("小明"); student.setAge(18); model.addAttribute("stu", student); return "01-basic"; } } ``` 3. 创建一个启动类,使用@SpringBootApplication注解标记,并在main方法中运行Spring Boot应用程序。例如: ``` @SpringBootApplication public class FreemarkerDemotApplication { public static void main(String[] args) { SpringApplication.run(FreemarkerDemotApplication.class, args); } } ``` 4. 运行测试,访问对应的URL来查看Freemarker模板渲染的结果。 以上是使用Spring Boot集成Freemarker的基本步骤。你可以根据具体的需求和业务逻辑进行相应的调整和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Springboot集成Freemarker|超级详细,建议收藏](https://blog.csdn.net/heima005/article/details/129435750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Springboot整合FreeMarker](https://blog.csdn.net/zxy15974062965/article/details/122818338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoderJia_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值