zoukankan      html  css  js  c++  java
  • 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 所有配置说明

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

  • 相关阅读:
    常用的XML读写
    未能使用提供程序 "RsaProtectedConfigurationProvider" 进行解密 的解决办法
    (原创)Urlrewrite 独立配置文件的使用方法
    The Two Interceptors: HttpModule and HttpHandlers
    根据最后修改时间查询存储过程
    Net下WinForm皮肤插件资源
    C# 主线程 辅助线程
    浅述WinForm多线程编程与Control.Invoke的应用
    ASP.NET实现图片防盗链
    URLRewrite 实现方法详解
  • 原文地址:https://www.cnblogs.com/magicalSam/p/7196340.html
Copyright © 2011-2022 走看看