- 原作者:https://my.oschina.net/xpx/blog/1845829
- 在页面高访问量并且页面数据不会经常变化的情况下我们可以生成静态页面,下面我们来实战一波spring-boot-thymeleaf生成静态文件
- 首先引入jar包
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/ognl/ognl --> <dependency> <groupId>ognl</groupId> <artifactId>ognl</artifactId> <version>3.0.8</version> </dependency>
准备一份测试的模板文件到项目中index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Insert title here</title> </head> <body> <span th:text="hello + ${name}"></span> </body> </html>
-
配置相关参数
-
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.thymeleaf.TemplateEngine; import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; @Configuration public class FreemarkerConfig { @Bean public TemplateEngine templateEngine() { ClassLoaderTemplateResolver classLoaderTemplateResolver = new ClassLoaderTemplateResolver(); classLoaderTemplateResolver.setPrefix("/templates/"); classLoaderTemplateResolver.setSuffix(".html"); classLoaderTemplateResolver.setCacheable(false); classLoaderTemplateResolver.setCharacterEncoding("utf-8"); TemplateEngine engine = new TemplateEngine(); engine.setTemplateResolver(classLoaderTemplateResolver); return engine; } }
增加工具类
-
package com.example.demo; import java.io.FileWriter; import java.io.IOException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.thymeleaf.TemplateEngine; import org.thymeleaf.context.Context; @Component public class FreemarkerUtils { @Autowired private TemplateEngine engine; /** * 生成静态文件 * @param freeTempName 模板名称 * @param context 数据内容 * @param outFilePath 输出路径 * @return */ public boolean process(String freeTempName,Context context,String outFilePath) { FileWriter fileWriter = null; try { fileWriter = new FileWriter(outFilePath); engine.process(freeTempName, context,fileWriter); } catch (IOException e) { e.printStackTrace(); return false; } finally { try { fileWriter.close(); } catch (IOException e) { e.printStackTrace(); return false; } } return true; } }
注入工具类进行测试
-
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.thymeleaf.context.Context; @RestController public class IndexController { @Autowired private FreemarkerUtils freeUtrils; @RequestMapping("/") public boolean testFreemarker() throws Exception { Context context = new Context(); context.setVariable("name", "张三"); return freeUtrils.process("index", context, "D:\\workutil\\workfile\\aaa3.html"); } }
测试结果
相关推荐
在实际开发中,你可以创建一个简单的 Spring Boot 项目,引入 Thymeleaf 依赖,然后在控制器中编写逻辑,返回视图名,Thymeleaf 将自动处理模板和模型数据,生成动态 HTML 页面。这极大地提高了开发效率和代码的...
通过以上示例和介绍,我们可以看出 Spring Boot Thymeleaf 为开发者提供了一种简洁高效的方式来处理前端页面的数据绑定和动态内容生成。无论是对于新手还是经验丰富的开发者来说,它都是一个值得考虑的选择。
此外,Spring Boot 还提供了许多其他特性,例如自动配置的 RESTful 控制器、模板引擎支持(如 Thymeleaf、FreeMarker 或 Groovy)以及对静态资源处理的支持。 Spring Boot 也支持 Actuator,这是一个用于生产环境的...
Thymeleaf在开发环境中提供即时反馈,而在生产环境中,它可以与Spring MVC等框架无缝集成,生成静态HTML。在本项目中,Thymeleaf负责视图的渲染,提供动态数据展示。 这个项目可能包含以下步骤: 1. 创建Spring ...
Spring Boot 是一个流行的 Java 框架,用于简化Spring应用的初始...通过Thymeleaf的模板语法,我们可以轻松地创建动态页面,同时利用Spring Boot的强大功能处理后端逻辑。这种组合为开发者提供了便捷、高效的开发体验。
在"bootdemo"这个项目中,很可能是包含了一个使用Spring Boot、Bootstrap和Thymeleaf开发的基础模板。这个模板可能包含了基本的路由配置、数据访问对象(DAO)、服务层(Service)以及控制器(Controller)的实现,...
在模板文件的表达式中,可以使用“${T(全限定类名).方法名(参数)}”这种格式来调用Java类的静态方法。 开发环境:IntelliJ IDEA 2019.2.2 ... <artifactId>spring-boot-starter-thymeleaf </dependenc
Spring Boot简化了Spring的配置,而Thymeleaf则是一个功能强大的服务器端模板引擎,为HTML页面提供了动态数据绑定和表达式语言。 首先,Spring Boot的核心特性包括自动配置、内嵌Web服务器(如Tomcat)以及起步依赖...
标题中的“开源博客系统(Java\Mybatis\Mysql\Spring-boot\Thymeleaf\Druid)”指的是一款使用Java编程语言开发的开源博客系统,该系统集成了多个核心技术和框架,包括Mybatis、Spring Boot、Druid、Thymeleaf以及...
例如,如果项目需要使用Thymeleaf作为模板引擎,只需添加spring-boot-starter-thymeleaf的依赖即可。同时,Spring Boot还支持Actuator,用于提供健康检查、指标监控等功能,有助于微服务环境下的应用管理和维护。 ...
- **Spring MVC**:Spring Boot默认使用Spring MVC处理HTTP请求,提供模板引擎(如Thymeleaf、Freemarker)支持。 - **RESTful服务**:创建JSON或XML响应,支持HATEOAS概念。 - **静态资源**:自动处理CSS、...
6. **Thymeleaf/FreeMarker模板引擎**:用于处理视图渲染,与Spring MVC配合提供动态网页功能。 7. **Spring Data JPA**:简化数据库操作,通过Repository接口实现CRUD功能,支持多种数据库。 8. **Spring ...
2. **src/main/resources**: 包含配置文件(如 application.properties 或 application.yml)、静态资源(如 HTML、CSS、JavaScript 文件)和模板引擎(如 Thymeleaf 或 FreeMarker)的文件。 3. **pom.xml**: Maven...
标题 "idea+springboot+thymeleaf" 暗示了这个压缩包可能包含一个使用IntelliJ IDEA开发的Spring Boot项目,其中整合了Thymeleaf模板引擎。让我们详细了解一下这三个关键组件: 1. **IntelliJ IDEA**:这是一款由...
综上所述,Thymeleaf作为一种强大的页面技术,与Spring Boot和Spring Cloud的整合提供了便捷的模板渲染和页面静态化方案,极大地提升了开发效率和应用性能。在实际开发中,充分利用其特性,可以构建出高效、可维护的...
Thymeleaf 的主要特点是其自然模板特性,允许开发者在不破坏静态页面的情况下编写模板。在本项目中,Thymeleaf 作为视图解析器,负责将后端数据渲染成动态的 HTML 页面,提供给用户交互。 综上所述,这个项目结合了...
在Web开发中,Spring Boot推荐使用模板引擎来处理视图,其中Thymeleaf因其易于学习、语法直观且支持服务器端和静态原型开发等特点,成为了常见选择。 Thymeleaf是一种用于Web和非Web环境的现代服务器端Java模板引擎...
开发者可以利用Spring Boot的RESTful API接口,通过HTTP请求从客户端获取或提交数据,Thymeleaf模板根据接收到的数据动态生成页面。通过这样的组合,可以构建出高效、可维护的理财管理应用。 至于压缩包中的文件...
- `src/main/resources`:资源文件夹,包括配置文件(如`application.properties`或`application.yml`)、静态资源(如HTML、CSS、JavaScript)和模板引擎文件(如Thymeleaf或Freemarker)。 - `pom.xml`或`build....
<artifactId>spring-boot-starter-thymeleaf </dependency> <groupId>org.springframework.boot <artifactId>spring-boot-maven-plugin --------------------------- src/main/resources/application....