博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot(二):thymeleaf模板开发
阅读量:6828 次
发布时间:2019-06-26

本文共 2718 字,大约阅读时间需要 9 分钟。

hot3.png

概述

Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。

好了,你们说了我们已经习惯使用了什么 velocity,FreMaker,beetle之类的模版,那么到底好在哪里呢? 比一比吧 Thymeleaf是与众不同的,因为它使用了自然的模板技术。这意味着Thymeleaf的模板语法并不会破坏文档的结构,模板依旧是有效的XML文档。模板还可以用作工作原型,Thymeleaf会在运行期替换掉静态值。Velocity与FreeMarker则是连续的文本处理器。

thymeleaf开发

  • 访问 填写项目基本信息,然后选择thymeleaf依赖
  • 下载zip包,然后导入eclipse
  • 新建index.html
            Hello World!                

Hello springboot v.2

  • 编写controller
@Controllerpublicclass TemplateController {    @RequestMapping("/")    public String helloHtml(Map
map){ map.put("hello","from TemplateController.helloHtml"); return"/index"; }}
  • 运行Application.java,浏览器输入 就能看到页面上输出的from TemplateController.helloHtml

springboot资源文件的约定目录结构

  • 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.htmlclasspath:/resources/index.htmlclasspath:/static/index.htmlcalsspath:/public/index.html

thymeleaf的相关配制

  1. 在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这个类的属性

  1. Spring-boot使用thymeleaf时默认是有缓存的,即你把一个页面代码改了不会刷新页面的效果,你必须重新运行spring-boot的main()方法才能看到页面更改的效果。我们可以把thymeleaf的缓存关掉,用于支持页面修改后重新发布到spring-boot内嵌的tomcat中去。在application.properties配置文件中加入以下配置。
# Allow Thymeleaf templates to be reloaded at dev time  spring.thymeleaf.cache: falseserver.tomcat.access_log_enabled: trueserver.tomcat.basedir: target/tomcat

thymeleaf常用基础知识点

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

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

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

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

  5. 判断,在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时间不为空,则显示时间

  6. 时间的格式化,${#dates.format(blog.publishTime,'yyyy-MM-dd HH:mm:ss')} 表示将时间格式化为yyyy-MM-dd HH:mm:ss格式化写法与Java格式化Date的写法是一致的。

  7. 字符串拼接有两种形式 比如拼接这样一个URL:/blog/delete/{blogId}

  • 第一种:th:href="'/blog/delete/' + ${blog.id }"
  • 第二种:th:href="${'/blog/delete/' + blog.id }"

转载于:https://my.oschina.net/u/933928/blog/2978865

你可能感兴趣的文章
DataInputStream与DataOutputStream的简单使用
查看>>
sql根据某一字段查询不重复记录,同时要查询出所有满足条件的字段信息
查看>>
RBL 列表查询网址
查看>>
nagios的错误及解决方法
查看>>
使用PIPESTATUS获取管道中所有命令的返回码
查看>>
CISCO CEF技术浅析
查看>>
API调用的几种类型
查看>>
写在前面2
查看>>
我的友情链接
查看>>
Juniper防火墙中文件安装配置手册
查看>>
react-router 学习笔记
查看>>
tomcat安装配置
查看>>
Struts2.0+Hibernate2.5+Spring3.0搭建JavaEE项目要用的jar
查看>>
Lync Server 2010调整用户设置时,报“访问特权不够”错误解决方法
查看>>
2013互联网公司,年终奖有几何?
查看>>
互联网
查看>>
MySQL load data 权限相关
查看>>
网站静态化处理—web前端优化—上(11)
查看>>
在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?
查看>>
Junit4单元测试的基本用法
查看>>