Spring Boot整合Freemarker实战教程

0 下载量 156 浏览量 更新于2024-09-05 收藏 105KB PDF 举报
"Spring Boot使用模板freemarker的示例代码" 本文将详细介绍如何在Spring Boot项目中集成并使用模板引擎Freemarker。Freemarker是一个强大的、灵活的模板语言,用于生成各种类型的文本输出,如HTML页面、电子邮件、配置文件等。它允许开发者将逻辑与视图分离,使得前端设计更加简洁易维护。 首先,我们需要创建一个新的Spring Boot项目,命名为`spring-boot-freemarker`。为了引入Freemarker支持,我们需要在项目的`pom.xml`文件中添加`spring-boot-starter-freemarker`依赖。在`<dependencies>`标签内添加以下内容: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> ``` 接下来,我们编写启动类。通常,启动类会包含`@SpringBootApplication`注解,用于启动Spring Boot应用。例如: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 现在,我们需要创建一个模板文件。在`src/main/resources/templates`目录下,创建一个名为`hello.ftl`的文件。这是Freemarker的模板文件,可以包含动态内容。例如,我们可以创建一个简单的欢迎页面: ```html <!DOCTYPE html> <html> <head> <title>Welcome Page</title> </head> <body> <h1>Welcome, ${name}!</h1> </body> </html> ``` 接下来,我们需要编写一个控制器类来处理HTTP请求。创建一个名为`HelloController`的Java类,使用`@RestController`注解表示这是一个RESTful控制器,`@GetMapping`用于处理GET请求。例如: ```java 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"; } } ``` 在这个例子中,`hello`方法将`name`属性设置为"World",并返回模板名称"hello"。Spring Boot会自动查找对应的`hello.ftl`文件,并用模型数据填充模板。 在测试阶段,你可以运行应用程序并访问`http://localhost:8080/hello`,你应该能看到一个显示"Welcome, World!"的网页。 默认情况下,Spring Boot对Freemarker的配置已经足够使用,但如果你想自定义配置,可以在`application.properties`或`application.yml`中进行。例如,如果你想更改模板文件的根目录,可以添加以下配置: ```properties spring.freemarker.template-loader-path=classpath:/templates/ ``` 关于Freemarker的常用语法,包括变量、条件语句、循环结构、函数调用等。变量表达式以`${}`包裹,如`${name}`;条件语句使用`<#if>`、`<#else>`等;循环结构通常用`<#list>`;调用函数则使用`<@functionName arg1 arg2 />`。 最后,如果你需要在项目中实现页面布局,Freemarker提供了`freemarker-layout`,允许你定义一个主模板,然后其他模板可以继承这个主模板。这可以帮助保持页面结构的一致性。 总结,Spring Boot集成Freemarker是一个简单的过程,通过引入依赖、创建模板文件、编写控制器以及配置相关参数,就可以实现动态页面的渲染。理解Freemarker的基本语法和使用方式,能帮助你更好地构建Web应用的视图层。