网站首页 > 开源技术 正文
在现代Web应用开发中,模板引擎的使用极为普遍,特别是在生成动态HTML页面方面。FreeMarker是一个强大的Java模板引擎,能帮助开发者快速创建动态内容。本篇文章将详细介绍如何在Spring Boot项目中整合FreeMarker。
环境准备
在开始之前,请确保在开发环境中已安装以下工具
- Java Development Kit (JDK) 8及以上
- Maven(如果使用Maven构建项目)
- IDE(如IntelliJ IDEA或Eclipse)
创建Spring Boot项目
我们可以通过Spring Initializr来创建一个项目,并且将项目解压之后导入到IDEA中。
添加FreeMarker依赖
接下来就是需要在项目中手动添加上FreeMarker依赖,如下所示。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
配置FreeMarker
在SpringBoot的application.properties文件中添加上FreeMarker相关的配置,如下所示。
# FreeMarker配置
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.suffix=.ftl
spring.freemarker.cache=false # 开发环境下关闭缓存
在这里配置介绍如下所示。
- template-loader-path:指定模板文件的存放路径,这里使用classpath方式。
- suffix:模板文件的后缀名,默认为.ftl。
- cache:开发时可以设置为false,以便每次都加载最新的模板。
创建FreeMarker模板
在src/main/resources/templates/目录下创建一个名为hello.ftl的文件,如下所示。
<!DOCTYPE html>
<html>
<head>
<title>Hello FreeMarker</title>
</head>
<body>
<h1>Hello, ${name}!</h1>
</body>
</html>
- ${name}是FreeMarker的占位符,用于动态填充数据。
创建控制器
在项目中创建一个控制器类,用于处理请求并返回模板,如下所示。
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("name", "World");
return "hello"; // 返回模板文件名,不包含后缀
}
}
使用@Controller注解定义一个控制器类。@GetMapping("/hello")映射HTTP GET请求到/hello路径。Model对象用于传递数据到模板。
启动项目
启动应用后,在浏览器中访问 http://localhost:8080/hello。如果一切配置正确,你应该能看到页面显示“Hello, World!”。
更多FreeMarker功能
FreeMarker支持多种功能,如循环、条件语句等,下面是一些常见的使用示例,如下所示。
条件语句
在模板中使用条件语句
<#if name == "World">
<p>Welcome, ${name}!</p>
<#else>
<p>Hello, ${name}!</p>
</#if>
循环
在模板中使用循环遍历集合
<#list items as item>
<p>${item}</p>
</#list>
总结
通过以上步骤,我们就可以实现将FreeMarker整合到Spring Boot项目中。这种组合为我们提供了灵活的动态页面生成能力,适合各种Web应用场景。在实际使用场景中我们可以根据自己的需求来对相关的内容实现动态的调整,来满足我们所需要的各种需求。有兴趣的读者可以在评论区讨论一下。
猜你喜欢
- 2024-11-18 在SpringBoot中应该避免的反模式 - Ali
- 2024-11-18 大厂面试系列(四):Spring相关
- 2024-11-18 SpringBoot入门系列(一)如何快速创建SpringBoot项目
- 2024-11-18 Spring Boot 2.4 部署你的第一个应用需要的环境
- 2024-11-18 跟着振锁撸全栈之JAVA入门 | 创建自己的第一个网站项目
- 2024-11-18 SpringBoot这玩意儿当然不能更好了
- 2024-11-18 Java基础学习路线之SpringBoot入门
- 2024-11-18 为什么 IDEA 把 Spring Boot 宠上天,这些神仙技巧告诉你答案
- 2024-11-18 Tomcat回显技术学习汇总
- 2024-11-18 年末的一波美团面试,被一波连环炮给轰了回来,做足准备来年再战
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)