Springboot模板(thymeleaf、freemarker模板)

目的:

  1、thymeleaf模板

  2、Freemarker模板


thymeleaf模板

  thymeleaf 的优点:

    支持html5标准,页面无须部署到servlet开发到服务器上,直接通过浏览器就能打开(有无网络都行)。

上代码案例:

  pom文件中添加对应jar包依赖

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

Spring Boot官方文档建议在开发时将缓存关闭,那就在application.yml文件中加入下面这行(正式环境还是要将缓存开启的,false关闭,true开启)

spring:
  thymeleaf:
    cache: false

后台代码:

  先创建一个实体类User以便后面测试用

package com.huangting.springboot01.entity;
import lombok.Data;
/**
 * @author 黄大娘
 * @company dogsun公司
 * @create 2019-11-08 19:01
 */
@Data
public class User {
    private String uid;
    private String uname;

    public User() {

    }
    public User(String uid, String uname) {
        this.uid = uid;
        this.uname = uname;
    }
}

  对应前端html页面,thymeleaf模板的后台操作

ThymeleafController 
package com.huangting.springboot01.controller;
import com.huangting.springboot01.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 黄大娘
 * @company dogsun公司
 * @create 2019-11-08 11:17
 */
@Controller
@RequestMapping("/thymeleaf")
public class ThymeleafController {

    @RequestMapping("/list")
    public ModelAndView list(){
        ModelAndView andView=new ModelAndView();
        List list = new ArrayList();
        list.add(new User("1","大黄"));
        list.add(new User("2","大娘"));
        list.add(new User("3","大毛"));
        andView.addObject("userList",list);
        andView.addObject("name","ht");
        andView.addObject("msg","<span style = ‘color:red;‘>这个是html标签</span>");
        //跳转页面
        andView.setViewName("list");
        return andView;
    }

}

前端html页面,对应后台展示效果

  list.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <!--一定要注意引用这个网站-->
<head>
    <meta charset="UTF-8">
    <title>thymeleaf分析页面</title>
</head>
<body>
thymeleaf分析页面
<h2>显示文本</h2>
<span th:text="${name}"></span>

<h2>显示HTML</h2>
<div th:utext="${msg}"></div>

<h2>循环</h2>
<table>
    <tr>
        <td>用户id</td>
        <td>用户名</td>
    </tr>
    <tr th:each="u:${userList}">
        <td th:text="${u.uid}"></td>
        <td th:text="${u.uname}"></td>
    </tr>
</table>
<h2>包含页面</h2>
<div th:include="common/head2 :: html"></div>
</body>
</html>

head2.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>包含页面</title>
</head>
<body>
<div th:fragment="h1">
    第一部分内容
        《常记溪亭日暮,沉醉不知归路。》
</div>
<div th:fragment="h2">
    第二部分内容
        《昨夜雨疏风骤,浓睡不消残酒。》
</div>
<div th:fragment="h3">
    第三部分内容
        《莫许杯深琥珀浓。未成沈醉意先融。》
</div>
</body>
</html>

效果:


Freemarker模板

学习网站:(http://freemarker.foofun.cn/

在pom中导入相关依赖

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

application.yml文件的默认配置

spring:
  thymeleaf:
    cache: false
  freemarker:
    # 设置模板后缀名
    suffix: .ftl
    # 设置文档类型
    content-type: text/html
    # 设置页面编码格式
    charset: UTF-8
    # 设置页面缓存
    cache: false
    # 设置ftl文件路径,默认是/templates,为演示效果添加role
    template-loader-path: classpath:/templates/role
  mvc:
    static-path-pattern: /static/**

后台实体类Role类

package com.huangting.springboot01.entity;
import lombok.Data;
/**
 * @author 黄大娘
 * @company dogsun公司
 * @create 2019-11-08 19:46
 */
@Data
public class Role {
    private String rid;
    private String rname;
    public Role() {
    }
    public Role(String rid, String rname) {
        this.rid = rid;
        this.rname = rname;
    }
}
FreemarkerController
package com.huangting.springboot01.controller;
import com.huangting.springboot01.entity.Role;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.List;

/**
 * @author 黄大娘
 * @company dogsun公司
 * @create 2019-11-08 19:45
 */
@Controller
@RequestMapping("/freemarker")
public class FreemarkerController {
    @RequestMapping("/list")
    public ModelAndView list(){
        ModelAndView mv = new ModelAndView();
        mv.addObject("loginName","双11");
        List list = new ArrayList();
        list.add(new Role("1","1号用户"));
        list.add(new Role("2","2号用户"));
        list.add(new Role("3","3号用户"));
        mv.addObject("roleList",list);
        mv.setViewName("list");
        return mv;
    }
}

前端页面:

list.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Freemarker</title>
</head>
<body>

<h2>获取值</h2>
${loginName!‘未知‘}

<h2>遍历</h2>
<table border="1px" width="60%">
    <tr>
        <td>角色id</td>
        <td>角色名</td>
    </tr>
    <#list roleList as role>
        <tr>
            <td>${role.rid}</td>
            <td>${role.rname}</td>
        </tr>
    </#list>
</table>

<h2>包含页面</h2>
<#include ‘common/head.ftl‘ />
<#include ‘common/global.ftl‘ />

<h2>获取项目名</h2>
${springMacroRequestContext.contextPath}

${ctx}

<h2>如何在页面定义变量</h2>
</body>
</html>

global.ftl

<#global ctx>
    ${springMacroRequestContext.contextPath}
</#global>

head.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
头部页面
</body>
</html>

效果:

谢谢观看!

原文地址:https://www.cnblogs.com/huangting/p/11822338.html

时间: 2024-10-11 06:27:01

Springboot模板(thymeleaf、freemarker模板)的相关文章

SpringBoot中Thymeleaf创建模板

SpringBoot中Thymeleaf创建模板 学习视频: http://www.itlaoqi.com/chapter/1688.html 源码地址: QQ群 814077650 , 群共享中自助下载 老齐的官网: itlaoqi.com (更多干货就在其中) 定义模板格式,使用th:fragment定义模板片段 header_footer.html 一个模板中可以使用th:fragment定义多个片段 <body> <nav class="navbar navbar-de

springboot中添加模板引擎freemarker和thymeleaf

freemarkder和thymeleaf都是java的模板引擎,这里只介绍这两种模板引擎如何在sprongboot中配置: 1. freemarkder 1.1 在pom.xml中添加依赖包 <!-- 集成freemarker --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</ar

SpringBoot 配置 Thymeleaf模板引擎

Thymeleaf模板引擎 什么是模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 学习视频: http://www.itlaoqi.com/chapter/1688.html 源码地址: QQ群 814077650 , 群共享中自助下载 老齐的官网: itlaoqi.com (更多干货就在其中) Thymeleaf的特点 Thymeleaf优点 主流唯一的前后端通用

SpringBoot:2.SpringBoot整合Thymeleaf模板引擎渲染web视图

在Web开发过程中,Spring Boot可以通过@RestController来返回json数据,那如何渲染Web页面?Spring Boot提供了多种默认渲染html的模板引擎,主要有以下几种: Thymeleaf FreeMarker Velocity Groovy Mustache Spring Boot 推荐使用这些模板引擎来代替 Jsp,Thymeleaf 只是其中一种,下面我们来简单聊聊Thymeleaf及实践一下如何整合Spring Boot和Thymeleaf. 1.Thyme

springboot整合Thymeleaf模板引擎

引入依赖 需要引入Spring Boot的Thymeleaf启动器依赖. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>nekohtml</groupId&g

SpringBoot获取Freemarker模板引擎,生成HTML代码

今天用Ajax异步添加评论,加载Freemarker模板引擎,生成模板模块 1.新建Freemarker模板 <li id="${comment.oId}"> <div> <div class="avatar tooltipped tooltipped-n" aria-label="${comment.commentName}" style="background-image: url(${comment.

Spring Boot 揭秘与实战(七) 实用技术篇 - FreeMarker 模板引擎

文章目录 1. FreeMaker 代替 JSP 作为页面渲染 2. 生成静态文件 3. 扩展阅读 4. 源代码 Spring Boot 提供了很多模板引擎的支持,例如 FreeMarker.Thymeleaf.这篇,我们看下 Spring Boot 如何集成和使用 FreeMarker. Spring Boot 中使用 FreeMarker 模板非常简单方便.如果想要使用FreeMarker 模板引擎,首先,修改 POM 文件,添加依赖. FreeMaker 代替 JSP 作为页面渲染 <de

springboot2.x——thymeleaf引擎模板

java的引擎模板主要有:thymeleaf.freemarker.volecity等等,有兴趣的可以去了解另外两个模板,此处只说thymeleaf.(三者的优点与缺点:https://blog.csdn.net/ztchun/article/details/76407612) thymeleaf是什么? 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果.这是由于它支持 html 原型,然后在 ht

Thymeleaf 搜索模板引擎

1.Thymeleaf是什么? Thymeleaf是一种用于Web和独立环境的现代服务器端的Java模板引擎. Thymeleaf的主要目标是将优雅的自然模板带到开发工作流程中,并将HTML在浏览器中正确显示,并且可以作为静态原型,让开发团队能更容易地协作.Thymeleaf能够处理HTML,XML,JavaScript,CSS甚至纯文本. Thymeleaf使用Spring框架的模块,与许多常见的工具集成在一起,并且可以插入自己的功能,是现代HTML5 JVM Web开发的理想选择,尽管Thy