FreeMarker(又称为 FreeMarker Template,简称为 FTL)是一种用于构建模板的开源模板引擎。在 Spring Boot 中,FreeMarker 模板通常用于生成动态的文本内容,比如 HTML 页面。

FreeMarker 模板使用基于标签的语法,类似于 HTML。模板中可以包含动态数据,这些数据可以由 Java 对象提供。Spring Boot 集成了 FreeMarker,你可以通过配置视图解析器(View Resolver)来使用 FreeMarker 模板引擎。

以下是使用 FreeMarker 模板的基本步骤:

  1. 添加 FreeMarker 依赖:

    • 在 Maven 项目中,需要添加 FreeMarker 依赖。在 pom.xml 文件中添加以下依赖:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-freemarker</artifactId>
      </dependency>
      
    • 如果是 Gradle 项目,添加如下依赖:

      implementation 'org.springframework.boot:spring-boot-starter-freemarker'
      
  2. 配置 FreeMarker:

    • Spring Boot 默认会根据约定的目录结构(src/main/resources/templates/)查找 FreeMarker 模板文件。你可以在 application.propertiesapplication.yml 中进行一些基本的 FreeMarker 配置:

      # FreeMarker 模板配置
      spring.freemarker.enabled=true
      spring.freemarker.template-loader-path=classpath:/templates/
      spring.freemarker.suffix=.ftl
      
    • 上述配置中,spring.freemarker.template-loader-path 指定了模板文件的位置,spring.freemarker.suffix 指定了模板文件的后缀。
  3. 创建 FreeMarker 模板文件:

    • 在指定的模板文件目录下,创建 FreeMarker 模板文件,文件的后缀通常为 .ftl

      <!-- 示例模板文件 src/main/resources/templates/welcome.ftl -->
      <html>
          <head>
              <title>Welcome Page</title>
          </head>
          <body>
              <h1>Welcome ${name}!</h1>
          </body>
      </html>
      
  4. 在控制器中使用 FreeMarker 模板:

    • 在 Spring Boot 中创建一个控制器,使用 @Controller@RequestMapping 注解来处理请求,并通过 Model 对象传递数据到模板。

      import org.springframework.stereotype.Controller;
      import org.springframework.ui.Model;
      import org.springframework.web.bind.annotation.RequestMapping;
      
      @Controller
      public class WelcomeController {
      
          @RequestMapping("/welcome")
          public String welcome(Model model) {
              model.addAttribute("name", "John");
              return "welcome"; // 返回模板文件名(不带后缀)
          }
      }
      
    • 上述代码中,model.addAttribute("name", "John") 将数据传递到模板中,return "welcome" 表示返回名为 welcome.ftl 的模板文件。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.