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 所有配置说明

  • 相关阅读:
    C#
    C#
    ssh学习笔记
    (已解决)Could not open '/var/lib/nova/mnt/*/volume-*': Permission denied
    RPCVersionCapError: Requested message version, 4.17 is incompatible. It needs to be equal in major version and less than or equal in minor version as the specified version cap 4.11.
    如何在linux下安装idea
    The system has no LUN copy license
    调整mysql数据库最大连接数
    mysql数据库编码问题
    cinder支持nfs快照
  • 原文地址:https://www.cnblogs.com/loaderman/p/10237365.html
Copyright © 2011-2022 走看看