返回顶部
首页 > 资讯 > 精选 >thymeleaf模板如何在spring boot中使用
  • 862
分享到

thymeleaf模板如何在spring boot中使用

springbootthymeleaf 2023-05-31 09:05:18 862人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关thymeleaf模板如何在Spring Boot中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言Thymeleaf 是一个跟 Velocity、Free

这篇文章将为大家详细讲解有关thymeleaf模板如何在Spring Boot中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

前言

Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 jsP 。相较与其他的模板引擎,它有如下三个极吸引人的特点:

      1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。

      2.Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。

      3.Thymeleaf 提供spring标准方言和一个与 springMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

下面这篇文章将给

整体步骤:

(1)  在pom.xml中引入thymeleaf;

(2)  如何关闭thymeleaf缓存

(3)  编写模板文件.html

spring Boot默认就是使用thymeleaf模板引擎的,所以只需要在pom.xml加入依赖即可:

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

Thymeleaf缓存在开发过程中,肯定是不行的,那么就要在开发的时候把缓存关闭,只需要在application.properties进行配置即可:

######################################################## ###THYMELEAF (ThymeleafAutoConfiguration) ######################################################## #spring.thymeleaf.prefix=classpath:/templates/ #spring.thymeleaf.suffix=.html #spring.thymeleaf.mode=HTML5 #spring.thymeleaf.encoding=UTF-8 # ;charset=<encoding> is added #spring.thymeleaf.content-type=text/html # set to false for hot refresh  spring.thymeleaf.cache=false

编写模板文件src/main/resouces/templates/helloHtml.html

<!DOCTYPE html> <html xmlns="Http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"  xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">  <head>  <title>Hello World!</title>  </head>  <body>  <h2 th:inline="text">Hello.v.2</h2>  <p th:text="${hello}"></p>  </body> </html>

编写访问路径(com.kfit.test.WEB.TemplateController):

package com.kfit.test.web;  import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;      @Controller  publicclass TemplateController {     @RequestMapping("/helloHtml")  public String helloHtml(Map<String,Object> map){   map.put("hello","from TemplateController.helloHtml");  return"/helloHtml";  } }

启动应用,输入地址:http://127.0.0.1:8080/helloHtml 会输出:

Hello.v.2

from TemplateController.helloHtml

使用freemarker

使用freemarker也很简单,

在pom.xml加入freemarker的依赖:

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

剩下的编码部分都是一样的,说下application.properties文件:

######################################################## ###FREEMARKER (FreeMarkerAutoConfiguration) ######################################################## spring.freemarker.allow-request-override=false spring.freemarker.cache=true spring.freemarker.check-template-location=true spring.freemarker.charset=UTF-8 spring.freemarker.content-type=text/html spring.freemarker.expose-request-attributes=false spring.freemarker.expose-session-attributes=false spring.freemarker.expose-spring-Macro-helpers=false #spring.freemarker.prefix= #spring.freemarker.request-context-attribute= #spring.freemarker.settings.*= #spring.freemarker.suffix=.ftl #spring.freemarker.template-loader-path=classpath:/templates/#comma-separatedlist #spring.freemarker.view-names= #whitelistofviewnamesthatcanberesolved

com.kfit.test.web.TemplateController:

   @RequestMapping("/helloFtl")  public String helloFtl(Map<String,Object> map){  map.put("hello","from TemplateController.helloFtl");  return"/helloFtl";  }

访问地址:http://127.0.0.1:8080/helloFtl

Hello.v.2

from TemplateController.helloFtl

thymeleaf和freemarker是可以共存的。

------------------------------------------------------------------------------------------------------------------------------------------------

本文记录一下几点:

一、资源文件的约定目录结构

二、Maven配置

三、开发时修改thymeleaf模板自动重新加载配置

四、thymeleaf常用基础知识点

一、资源文件的约定目录结构

Maven的资源文件目录:/src/Java/resources

spring-boot项目静态文件目录:/src/java/resources/static

spring-boot项目模板文件目录:/src/java/resources/templates

spring-boot静态首页的支持,即index.html放在以下目录结构会直接映射到应用的根目录下:

classpath:/META-INF/resources/index.html classpath:/resources/index.html classpath:/static/index.html calsspath:/public/index.html

由于使用thymeleaf的HTML5模板,所以我将index.html模板文件直接放到了/src/java/resources/templates目录下。然而这个目录并不是首页文件的默认目录,所以我们需要手动将应用根路径映射到/src/java/resources/templates/index.html下。这个在spring-mvc的Controller下映射一下就可以了。

@RequestMapping("/")  public String index(){  return "index";  }

在spring-boot下,默认约定了Controller试图跳转中thymeleaf模板文件的的前缀prefix是”classpath:/templates/”,后缀suffix是”.html”

这个在application.properties配置文件中是可以修改的。

如下配置可以修改试图跳转的前缀和后缀

spring.thymeleaf.prefix: /templates/ spring.thymeleaf.suffix: .html

更过有关thymeleaf中的默认这是可以查看org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties这个类的属性

二、Maven配置

在pom.xml中加入如下依赖

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

原来关于spring-boot-starter-web等的依赖就可以去掉了,因为spring-boot-starter-thymeleaf是包含这些依赖的。而关于jsp的依赖也可以去掉了,因为我们已经完全抛弃jsp了。

三、开发时修改thymeleaf模板自动重新加载配置

Spring-boot使用thymeleaf时默认是有缓存的,即你把一个页面代码改了不会刷新页面的效果,你必须重新运行spring-boot的main()方法才能看到页面更改的效果。我们可以把thymeleaf的缓存关掉,用于支持页面修改后重新发布到spring-boot内嵌的Tomcat中去。在application.properties配置文件中加入以下配置。

# Allow Thymeleaf templates to be reloaded at dev time spring.thymeleaf.cache: false server.tomcat.access_log_enabled: true server.tomcat.basedir: target/tomcat

四、thymeleaf常用基础知识点

在html页面中引入thymeleaf命名空间,即<html xmlns:th=http://www.thymeleaf.org></html> ,此时在html模板文件中动态的属性使用th:命名空间修饰

引用静态资源文件,比如CSS和JS文件,语法格式为“@{}”,如@{/js/blog/blog.js}会引入/static目录下的/js/blog/blog.js文件

访问spring-mvc中model的属性,语法格式为“${}”,如${user.id}可以获取model里的user对象的id属性

循环,在html的标签中,加入th:each=“value:${list}”形式的属性,如<span th:each=”user:${users}”></span>可以迭代users的数据

判断,在html标签中,加入th:if=”表达式”可以根据条件显示html元素

<span th:if="${not #lists.isEmpty(blog.publishTime)}"> <span id="publishtime" th:text="${#dates.fORMat(blog.publishTime, 'yyyy-MM-dd HH:mm:ss')}"></span> </span>

以上代码表示若blog.publishTime时间不为空,则显示时间

时间的格式化,

${#dates.format(blog.publishTime,'yyyy-MM-dd HH:mm:ss')}

表示将时间格式化为”yyyy-MM-dd HH:mm:ss”格式化写法与Java格式化Date的写法是一致的。

字符串拼接,有两种形式

比如拼接这样一个URL:/blog/delete/{blogId}

第一种:th:href="'/blog/delete/' + ${blog.id }" rel="external nofollow"

第二种:th:href="${'/blog/delete/' + blog.id }" rel="external nofollow"

关于thymeleaf模板如何在spring boot中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: thymeleaf模板如何在spring boot中使用

本文链接: https://lsjlt.com/news/224739.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • thymeleaf模板如何在spring boot中使用
    这篇文章将为大家详细讲解有关thymeleaf模板如何在spring boot中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言Thymeleaf 是一个跟 Velocity、Free...
    99+
    2023-05-31
    springboot thymeleaf
  • 如何使用Spring Boot thymeleaf模板引擎
    本篇内容主要讲解“如何使用Spring Boot thymeleaf模板引擎”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Spring Boot thymeleaf模板引擎”吧!在早期开...
    99+
    2023-06-07
  • 如何使用Spring Boot+Thymeleaf
    本篇内容主要讲解“如何使用Spring Boot+Thymeleaf”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Spring Boot+Thymeleaf”吧!1. Thymeleaf...
    99+
    2023-06-15
  • spring Boot怎么与Thymeleaf模板引擎结合使用
    这篇文章给大家介绍spring Boot怎么与Thymeleaf模板引擎结合使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Thymeleaf:Thymeleaf是一个java类库,他是一个xml/xhtml/htm...
    99+
    2023-05-31
    springboot thymeleaf
  • SpringBoot中如何使用Thymeleaf模板
    本文小编为大家详细介绍“SpringBoot中如何使用Thymeleaf模板”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot中如何使用Thymeleaf模板”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-06-30
  • Spring boot如何搭建web应用集成thymeleaf模板实现登陆
    这篇文章将为大家详细讲解有关Spring boot如何搭建web应用集成thymeleaf模板实现登陆,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Spring boot 搭建web应用集成了thymel...
    99+
    2023-05-30
    springboot web thymeleaf
  • SpringBoot中使用Thymeleaf模板详情
    目录一.什么是Thymeleaf二.SpringBoot中使用Thymeleaf模板1.pom.xml中添加thymeleaf依赖2.关闭thymeleaf缓存3.创建thymele...
    99+
    2024-04-02
  • springboot中thymeleaf模板使用详解
    这篇文章将更加全面详细的介绍thymeleaf的使用。thymeleaf 是新一代的模板引擎,在spring4.0中推荐使用thymeleaf来做前端模版引擎。thymeleaf介绍简单说, Thymeleaf 是一个跟 Velocity、...
    99+
    2023-05-31
    springboot thymeleaf
  • Spring Boot中Thymeleaf使用方法有哪些
    这篇文章主要介绍“Spring Boot中Thymeleaf使用方法有哪些”,在日常操作中,相信很多人在Spring Boot中Thymeleaf使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
    99+
    2023-06-02
  • spring boot(四)之thymeleaf使用详解
    在上篇文章springboot(二):web综合开发中简单介绍了一下thymeleaf,这篇文章将更加全面详细的介绍thymeleaf的使用。thymeleaf 是新一代的模板引擎,在spring4.0中推荐使用thymeleaf来做前端模...
    99+
    2023-05-31
    springboot thymeleaf
  • 在spring boot项目中如何实现使用thymeleaf实现页面跳转
    本篇文章为大家展示了在spring boot项目中如何实现使用thymeleaf实现页面跳转,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言在学习springboot 之后想结合着html做个小d...
    99+
    2023-05-31
    springboot thymeleaf 页面跳转
  • 如何在Spring Boot中使用MQTT
    目录为什么选择MQTT MQTT, 启动! 使用方式 Client模式 创建工厂类 创建工具类 Spring Integration 总结 为什么选择MQTT MQTT的定义相信很...
    99+
    2024-04-02
  • Lombok如何在Spring Boot中使用
    本篇文章给大家分享的是有关Lombok如何在Spring Boot中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。springboot是什么springboot一种全新的编...
    99+
    2023-06-14
  • JdbcTemplate如何在spring boot中使用
    JdbcTemplate如何在spring boot中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Spring对数据库的操作在jdbc上面做了深层次的封装...
    99+
    2023-05-31
    springboot emp jdbctemplate
  • filter如何在Spring Boot中使用
    今天就跟大家聊聊有关filter如何在Spring Boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。过滤器(Filter)的注册方法和 Servlet 一样,有两种方式:...
    99+
    2023-05-31
    spring boot filter
  • Druid如何在Spring Boot中使用
    这篇文章给大家介绍Druid如何在Spring Boot中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSour...
    99+
    2023-05-31
    springboot druid
  • 如何在Spring Boot中使用Webflux
    这篇文章主要介绍“如何在Spring Boot中使用Webflux”,在日常操作中,相信很多人在如何在Spring Boot中使用Webflux问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在Spring...
    99+
    2023-06-02
  • 如何在spring boot中使用utf8mb4
    这篇文章给大家介绍如何在spring boot中使用utf8mb4,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。spring: datasource:  driver-class-name...
    99+
    2023-06-06
  • 事务如何在Spring Boot 中使用
    今天就跟大家聊聊有关事务如何在Spring Boot 中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。spring Boot 使用事务非常简单,首先使用注解 @EnableTra...
    99+
    2023-05-31
    springboot 事务
  • Thymeleaf模板引擎怎么使用
    今天小编给大家分享一下Thymeleaf模板引擎怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作