• Spring Boot 系列(五)web开发-Thymeleaf、FreeMarker模板引擎


    前面几篇介绍了返回json数据提供良好的RESTful api,下面我们介绍如何把处理完的数据渲染到页面上。

    Spring Boot 使用模板引擎

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

    Spring Boot 对以上几种引擎提供了良好的默认配置,默认 src/main/resources/templates 目录为以上模板引擎的配置路径。

    一、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

    /**
     * @author sam
     * @since 2017/7/16
     */
    @Controller
    public class HomeController {
    
        @RequestMapping("/home")
        public String home(ModelMap modelMap) {
    
            modelMap.put("name", "Magical Sam");
    
            List<String> list = new ArrayList<>();
            list.add("sam a");
            list.add("sam b");
            list.add("sam c");
            list.add("sam d");
            modelMap.put("list", list);
    
            return "home";
        }
    
    }
    
    

    3、编写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>
    

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

    如需修改 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=
    

    附: application.properties 全部配置项,点击查看Spring Boot 所有配置说明

    版权声明:本文为博主原创文章,转载请注明出处。

  • 相关阅读:
    mybatis 框架 的应用之四(一对一 与 一对多)
    mybatis 框架 的应用之三(操作两张没有关联的表,存在主键和外键关系)
    mybatis 框架 的应用之二(批量添加、实现分页查询)
    hibernate 框架的简单使用
    Java c3p0 连接 MySQL
    Oracle 复制表
    web 应用中访问 Spring 具体实现
    oracle 创建表 外键约束
    oracle 通过序列实现某字段自增
    Swift数组的sort、filter、forEach、map等方法,$的使用
  • 原文地址:https://www.cnblogs.com/magicalSam/p/7196340.html
Copyright © 2020-2023  润新知