目录
3.1 ${}: 标准变量表达式
3.2 选择变量表达式?*{}和th:object
3.3 链接(URL)表达式和th:href
3.4 th: 标签动作
3.6 标签th:switch/th:case
例如,某些值是动态的,您创建一些表达式。而这些值是从哪里来的呢?然后,它将该模板和该数据传递给模板引擎。模板引擎根据你的数据解析这个表达式,将其输入到指定位置,最终根据这些数据生成并写入所需的内容。这就是我们的模板引擎,不管是JSP还是其他任何模板引擎,都是这个思路。
SpringBoot推荐的模板引擎是Thymeleaf。该模板引擎具有更简单的语法和更强大的功能。
一、背景
我们之前开发,我们需要将前端转成jsp页面,jsp好处就是当我们查出一些数据转发到JSP页面以后,我们可以用jsp轻松实现数据的显示,及交互等。
(1) thymeleaf 模板引擎可用于Web 和非Web 环境。在非Web环境中,您可以直接在模板上查看静态数据。它从jsp等后台接收数据,并替换模板上的静态数据。
(2)Thymeleaf基于HTML,使用HTML标签作为载体。 Thymeleaf 依赖HTML 标签来显示数据。
jsp支持非常强大的功能,包括能写Java代码,但是呢,我们现在的这种情况,SpringBoot这个项目首先是以jar的方式,不是war,其二,我们用的还是嵌入式的Tomcat,所以呢,他现在默认是不支持jsp的。
Thymeleaf 非常容易使用。只需将您的HTML 页面放在类路径上的模板下,thymeleaf 就会自动为您呈现它。
(1) 导入依赖
在依赖项groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-thymeleaf/artifactId /dependency (2) 资源下创建目录模板
(3)编写test.html
!DOCTYPE htmlhtml lang='en'head meta charset='UTF-8' titleTitle/title/headbody/body/html (4)编写Controller类
包com.yixin.demo.controller;导入org.springframework.stereotype.Controller;导入org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class MyController { @RequestMapping('/test') public String test1(){ return 'test' }} (5) 执行
测试通过! 表示访问模板目录成功。
那该怎么办呢?
Thymeleaf 中的语法太多,因此我们在这里只讨论一些常见的语法。其他语法请访问官网。
官网:时叶
通用语法
${}: 标准变量表达式选择变量表达式*{} 和th: 对象链接(URL)表达式和th:href th:action 的第th 标签th:switch/th:case 的th: 标签
SpringBoot推荐我们可以来使用模板引擎。
导入thymeleaf 的命名空间
html lang='ja' xmlns:th='http://www.thymeleaf.org'
什么是模板引擎?
二、Thymeleaf
@RequestMapping('/test2')public String test2(model model) { model.addAttribute('msg', '标准变量表达式' ); 博客blog=new Blog(1); }
2.1特点
!DOCTYPE htmlhtml lang='en' xmlns:th='http://www.thymeleaf.org'head 元字符集='UTF-8 ' titleTitle/title/headbodybrspan th:text='${msg}'span默认文本内容/spanbr/!--th:text; --brid: span th:text='${blog.id}'xx/spanname: span th:text='${blog.名称}'xxx/spanpwd: span th:text='$ {blog.pwd}'xxx/span/body/html
2.2使用
三、Thymeleaf语法
前提:
3.1 ${}: 标准变量表达式
!DOCTYPE htmlhtml lang='zh' xmlns333 60th='http://www.thyme leaf.org'head Metacharset='UTF-8' titleTitle/title/headbodyspan th:text='${msg}'span 默认文本内容/spanbr/div th:object='${blog}' id: span th:text=' *{id}'xxx/span name: span th:text='*{name}'xxx/spanage: span th:text='*{pwd}'xxx/span br/id: span th:text='${blog.id} 'xxx/跨度名称: 跨度th:text='${ blog.name }'xxx/跨度age: 跨度th:text='${blog.pwd}'xxx/span/div/body/html
Controller:
test.html:
010-101 0
运行:
语法:@{…}
3.2 选择变量表达式*{} 和 th:object
(1) 绝对URL,例如:
查看
(2) 相对于页面的URL。像这样的东西:
查看
(3) 相对于URL,相对于项目上下文,例如:
查看(自动添加项目上下文名称)
*{}: 选择变量表达式
@RequestMapping('/test2')public String test2(model model) {model.addAttribute('msg', '标准变量表达式');setName('yixin'); model.addAttribute('blog',blog); }@RequestMapping('/blog')@ResponseBody String getUserById(Integer id); { System.out.println('id=' + id='); +id;}test3.html:
!DOCTYPE htmlhtml lang='en' xmlns:th='http://www.thymeleaf.org' 头元字符集='UTF-8' titleTitle/title/headbodya href='test.html' th:href=''http://localhost:8080/blog?id=' + $ {blog.id}'博客id/aa href='#' th:href='@{'http://localhost:8080/blog?id=' + ${blog.id}}'博客id/a/body/html
标准变量表达式和选择变量表达式可以混合使用 ;
:010 - 69504
先用 th:object来绑定 blog 对象, 然后用 * 来代表这个 blog对象
运行:
@RequestMapping('/test2')public String test2(model model) { model.addAttribute('msg', '标准变量表达式'); blog .setId(1); blog.setPwd('123'); return 'test4' ; @ResponseBodypublic String getUserById(Integer id) { System.out.println('id=' + id); id }
3.3 链接(URL)表达式 和 th:href
!DOCTYPE htmlhtml lang='en' xmlns:th='http://www.thymeleaf. org'head meta charset='UTF-8' titleTitle/title/headbodyform th:action='@{/blog}' id:input type='text' name='id' value=''/input type='submit' value='提交' //form/body/html
使用说明:
URL表达式
URL表达式可用于
@RequestMapping('/test2')public String test2(Model model) { model.addAttribute('msg', ' Standard变量表达式'); new Blog.setName('yixin'); 'test4'; }@RequestMapping('/blogList')public String hello(Model Model);=new ArrayList(); for (int i=1; i=3; i++) { 博客blog=new Blog.setId(i); blog.setPwd('Isshin'+i); blogList); 'test5'; }
Controller类:
!DOCTYPE htmlhtml lang='en' xmlns:th='http://www.thymeleaf.org' 头元字符集='UTF-8' titleTitle/title/headbody p th:each='blog: ${blogList ' span th:text='${blog.id}' xxx/span span th:text='${blog.name}' xxx/span span th:text='${blog.pwd}' xxx/span/p/body/html :010 -1010
运行:
3.4 th标签之th:action
@RequestMapping('/test2')public String test2(模型model) {model.addAttribute('msg', '标准变量表达式'); setId(1); blog.setPwd('123'); 返回值'test6' }
Controller类:
' xmlns:th='http://www.thymeleaf.org' 头元字符集='UTF-8' titleTitle/title/headbodytr td 昵称:/td td th:switch='${blog.id}' Span th:case='1' Isshin/span Span th:case='2'张三/span /td/tr/body/html
test4.html:
以上是[ ] Thymeleaf 这是知识点和基本用法的讲解。老实说,Thymeleaf 是一个模板引擎。它还是非常好用的,而且我个人认为它比jsp还要强大。你也可以自己输入代码,这对于检查文章是否有缺陷非常有用。请随意提及。让我们一起进步吧。
首先,我想介绍一下我自己。我2013年毕业于交通大学,曾就职于中小企业、华为、OPPO等大公司,2018年加入阿里巴巴,目前就职。我们知道,大多数初级和中级Java工程师如果想要提高自己的技能,往往要自己摸索成长或者报班,但培训机构近万元的课程费用其实还是比较紧张的。没有系统体系的自学效率低、耗时长,很容易陷入停滞状态,阻碍技术进步。因此,我收集了《java开发全套学习资料》份,分发给大家。它的初衷是为了帮助那些想要自学但不知道从哪里开始的朋友,同时又非常简单。减轻大家的负担。在下面添加您的名片以获得全套学习材料
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。