Java:SpringBoot 整合 Freemarker模板引擎渲染html

依赖

pom.xml

<
    dependency>
    
    <
    groupId>
    org.springframework.boot<
    /groupId>
    
    <
    artifactId>
    spring-boot-starter-freemarker<
    /artifactId>
    
<
    /dependency>
    

完整依赖

<
    ?xml version="1.0" encoding="UTF-8"?>
    
<
    project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <
    modelVersion>
    4.0.0<
    /modelVersion>
    
    <
    parent>
    
        <
    groupId>
    org.springframework.boot<
    /groupId>
    
        <
    artifactId>
    spring-boot-starter-parent<
    /artifactId>
    
        <
    version>
    2.7.7<
    /version>
    
        <
    relativePath/>
     <
    !-- lookup parent from repository -->
    
    <
    /parent>
    
    
    <
    groupId>
    com.example<
    /groupId>
    
    <
    artifactId>
    demo<
    /artifactId>
    
    <
    version>
    0.0.1-SNAPSHOT<
    /version>
    
    <
    name>
    demo<
    /name>
    
    <
    description>
    Demo project for Spring Boot<
    /description>
    
    
    <
    properties>
    
        <
    java.version>
    1.8<
    /java.version>
    
    <
    /properties>
    
    
    <
    dependencies>
    
        <
    dependency>
    
            <
    groupId>
    org.springframework.boot<
    /groupId>
    
            <
    artifactId>
    spring-boot-starter-web<
    /artifactId>
    
        <
    /dependency>
    

        <
    dependency>
    
            <
    groupId>
    org.springframework.boot<
    /groupId>
    
            <
    artifactId>
    spring-boot-starter-freemarker<
    /artifactId>
    
        <
    /dependency>
    

        <
    dependency>
    
            <
    groupId>
    org.springframework.boot<
    /groupId>
    
            <
    artifactId>
    spring-boot-devtools<
    /artifactId>
    
            <
    scope>
    runtime<
    /scope>
    
            <
    optional>
    true<
    /optional>
    
        <
    /dependency>
    
    <
    /dependencies>
    
<
    /project>
    

配置文件

src/main/resources/application.properties

# freemarker文件名后缀,默认是 .ftl
spring.freemarker.suffix=.html

控制器

src/main/java/com/example/demo/controller/IndexController.java

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 IndexController {


    @GetMapping("/")
    public String index(Model model) {
    
        model.addAttribute("name", "Tom");
    
        return "index";

    }

}
    

模板文件

src/main/resources/templates/index.html

<
    body>
    
    <
    h2>
hello ${
name}
    !<
    /h2>
    
<
    /body>
    

页面输出

完整代码:https://mouday.github.io/spring-boot-demo/#/SpringBoot-Freemarker/README