zoukankan      html  css  js  c++  java
  • springboot之freemarker 和thymeleaf模板web开发

    Spring Boot 推荐使用Thymeleaf、FreeMarker、Velocity、Groovy、Mustache等模板引擎。不建议使用JSP。

    一、Spring Boot 中使用Thymeleaf模板引擎

    简介:Thymeleaf 是类似于Velocity、FreeMarker 的模板引擎,可用于Web与非Web环境中的应用开发,并且可以完全替代JSP 。

    1、pom.xml 添加依赖

    <!-- thymeleaf 模板引擎-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    2、编写controller

    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Controller
    public class HomeController {
    
        @RequestMapping("/home")
        public String home(ModelMap modelMap) {
            System.out.println("11");
            modelMap.put("name", "loaderman");
            List<String> list = new ArrayList<>();
            list.add(" a");
            list.add(" b");
            list.add(" c");
            list.add(" d");
            modelMap.put("list", list);
            return "/home";
        }
    }

    3、编写home.html代码,其中th:text="${name}" 为thymeleaf的语法,具体可参考:Thymeleaf 官方文档

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8"/>
        <title>Home</title>
    </head>
    <body>
    <span th:text="${name}"></span>
    <ul>
        <li th:each="item : ${list}" th:text="${item}"></li>
    </ul>
    </body>
    </html>

    启动应用,访问:http://localhost:8080/home ,可以得到相应结果。

    如需修改 thymeleaf 的默认配置,可以在application.properties中添加:

    # ================================================
    #                   Thymeleaf配置
    # ================================================
    # 是否启用thymeleaf模板解析
    spring.thymeleaf.enabled=true
    # 是否开启模板缓存(建议:开发环境下设置为false,生产环境设置为true)
    spring.thymeleaf.cache=false 
    # Check that the templates location exists.
    spring.thymeleaf.check-template-location=true 
    # 模板的媒体类型设置,默认为text/html
    spring.thymeleaf.content-type=text/html
    # 模板的编码设置,默认UTF-8
    spring.thymeleaf.encoding=UTF-8
    # 设置可以被解析的视图,以逗号,分隔
    #spring.thymeleaf.view-names=
    # 排除不需要被解析视图,以逗号,分隔
    #spring.thymeleaf.excluded-view-names=
    # 模板模式设置,默认为HTML5
    #spring.thymeleaf.mode=HTML5 
    # 前缀设置,SpringBoot默认模板放置在classpath:/template/目录下
    spring.thymeleaf.prefix=classpath:/templates/ 
    # 后缀设置,默认为.html
    spring.thymeleaf.suffix=.html
    # 模板在模板链中被解析的顺序
    #spring.thymeleaf.template-resolver-order=

    二、Spring Boot 中使用FreeMarker模板引擎

    1、pom.xml 添加依赖

          <!-- freemarker 模板引擎 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-freemarker</artifactId>
            </dependency>

    2、编写controller

    同上

    3、templates 下新建 home.ftl文件编写html代码,freemarker语法 可参考:FreeMarker 官方文档

    home.ftl
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <span>${name}</span>
    <ul>
        <#list list as item >
            <li>${item}</li>
        </#list>
    </ul>
    </body>
    </html>

    如需修改 freemarker 的默认配置,可以在application.properties中添加:

    # ================================================
    #                   FreeMarker配置
    # ================================================
    # 是否开启模板缓存
    spring.freemarker.cache=true
    # 编码格式
    spring.freemarker.charset=UTF-8
    # 模板的媒体类型设置
    spring.freemarker.content-type=text/html
    # 前缀设置 默认为 ""
    spring.freemarker.prefix=
    # 后缀设置 默认为 .ftl
    spring.freemarker.suffix=.ftl
    #spring.freemarker.allow-request-override=false
    #spring.freemarker.check-template-location=true
    #spring.freemarker.expose-request-attributes=false
    #spring.freemarker.expose-session-attributes=false
    #spring.freemarker.expose-spring-macro-helpers=false
    #spring.freemarker.request-context-attribute=
    #spring.freemarker.template-loader-path=classpath:/templates/
    #spring.freemarker.view-names=

    点击查看Spring Boot 所有配置说明

  • 相关阅读:
    NetCore物联网平台 4
    NetCore物联网平台 3
    NetCore物联网平台 2
    NetCore物联网平台 1
    阿里云IoT 8:待更新
    阿里云IoT 7:待更新
    阿里云IoT 6:待更新
    阿里云IoT 5:待更新
    阿里云IoT 4:数据解析
    svg 实现半环形进度条
  • 原文地址:https://www.cnblogs.com/loaderman/p/10237365.html
Copyright © 2011-2022 走看看