重学SpringBoot3-集成FreeMarker

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

重学SpringBoot3-集成FreeMarker

  • 1. 添加 FreeMarker 依赖
  • 2. 配置 FreeMarker 属性(可选)
  • 3. 创建 FreeMarker 模板
  • 4. 编写控制器
  • 5. 运行应用程序
  • FreeMarker 基本语法
    • 数据模型
    • 变量
    • 条件判断
    • 循环
    • 包含其他模板
    • 宏(Macro)
    • 赋值
    • 内建函数
    • 注释
    • 转义
  • 总结

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 的各种属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/537808.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java/Image】给指定路径下图片反色并加上当前日期形式的水印

【需求】 从通达信软件截屏下来的K线图&#xff0c;在打印前需要反色&#xff0c;打印后需要手动加上当前日期&#xff0c;这些都可以由程序代替手工完成。 以下是期待的效果。 【关键点】 给图片反色用的是梯度法&#xff0c;这个在网络上已有成型代码&#xff1b; 给图片…

【考研学子必看 ★2024考研国家线及调剂策略(3)】

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项&#xff0c;系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…

C++结合opencv—图像2维直方图初次尝试

// 二维直方图 void QuickDemo::two_histogram_demo(Mat &image) {Mat hsv, hs_hist;cvtColor(image, hsv, COLOR_BGR2HSV);int hbins 30, sbins 32;int hisat_bins[] { hbins,sbins };float h_range[] { 0,180 }; //180/306float s_range[] { 0,256 };// 256/328cons…

javaweb篇请求与相应的参数问题

目录 前言 简单传参设置 get请求无法识别 post请求 简单传参问题无法识别的解决问题 注意事项 改法 实体参数 代码展示 今日分享 前言 友友们&#xff0c;大家好&#xff0c;今天来开荒了,今天介绍的是在进行数据请求以及相应的时候&#xff0c;我们不仅仅只是进入一…

LED基础知识分享(三)

大家好&#xff0c;我是砖一。 一&#xff0c;LED的光衰与使用环境温度 什么叫LED光衰 光衰是指LED经过一段时间的点亮后,其光强会比原来的光强要低,而低了的部分就是LED的光衰。 一般LED封装厂家做测试是在实验室的条件下(25℃的常温下),以20MA的直流电连续点亮LED1000小时…

学习SSM的记录(六)-- Spring MVC

目录 Spring MVC 简介和体验 Spring MVC原理简单解析 Spring MVC涉及的组件 Spring MVC 快速体验 Spring MVC 接收数据 访问路径设置 接收参数&#xff08;重点&#xff09; param和json参数比较 param参数接收 路径参数接收 json参数接收 EnableWebMvc注解 接收C…

KEIL5新建第一个文件教程

1.进入keil5主页面点击project创建新工程。 2.先确定存放工程的地址然后创建双重文件目录&#xff0c;以便存放更多的文件代码实例。 3.寻找存放工程文件的位置&#xff0c;输入新工程文件名。 4.寻找对应项目的芯片。 4.这里选择。 5.创建新的文本点击保存。 6.添加刚刚创建的…

k8s关于pod

目录 1、POD 的创建流程 kubectl 发起创建 Pod 请求&#xff1a; API Server 接收请求并处理&#xff1a; 写入 Etcd 数据库&#xff1a; Kubelet 监听并创建 Pod&#xff1a; Pod 状态更新和汇报&#xff1a; 2、POD 的状态解析 1. Pending Pod 2. Running Pod 3. S…

RabbitMQ备份交换机与优先级队列

1. 备份交换机 备份交换机可以理解为 RabbitMQ 中交换机的“备胎”&#xff0c;当我们为某一个交换机声明一个对应的备份交换机时&#xff0c;就是为它创建一个备胎&#xff0c;当交换机接收到一条不可路由消息时&#xff0c;将会把这条消息转发到备份交换机中&#xff0c;由备…

【掌握版本控制:Git 入门与实践指南】远程操作|标签管理

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;泥中に咲く—ウォルピスカーター 0:34━━━━━━️&#x1f49f;──────── 4:46 &#x1f504; ◀️ ⏸ ▶…

MySQL的索引(优缺点,二叉树,红黑数,B+Tree)【详解】

1.什么是索引 索引&#xff1a;是用于提高查询数据性能的一种数据结构。实际开发中&#xff0c;对数据的读写操作大概是10&#xff1a;1 把索引理解为目录。 构建索引的过程&#xff0c;就是构建目录的过程 构建索引的过程中会对数据进行排序 2.索引的优缺点 优点&#x…

决策树 | 分类树回归树:算法逻辑

目录 一. 决策树(Decision Tree)1. 决策树的构建1.1 信息熵(Entropy)1.1.1 信息量&信息熵 定义1.1.2 高信息熵&低信息熵 定义1.1.3 信息熵 公式 1.2 信息增益(Information Gain)1.2.1 信息增益的计算1.2.2 小节 2. 小节2.1 算法分类2.2 决策树算法分割选择2.3 决策树算…