首页 > 自考资讯 > 高考百科

Spring BootThymeleaf springbootthymeleaf跳转

小条 2024-10-22

目录

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) 资源下创建目录模板

c5f3f2e13d88491780de5719f173d8aa~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=kk0hr%2BhYCjCPxZsyeJbWyWwP0gk%3D(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) 执行

6924996f9d924336a132f389a5bf9a9a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=3ACJxsnKLwIZH5LwpmRWu4%2BYy2E%3D 测试通过! 表示访问模板目录成功。

那该怎么办呢?

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使用

890b8c46b11a486ea0315fef53338b31~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=FbodQg8jE5Jg8jUCpNDXOrBIj0Y%3D

三、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:

da697c2f829f4a67afe6019853dfef24~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=sN%2Bf2i1zYjrNso%2FQvYj6slHp6XI%3D

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 6f83fc334a0e4182a9254c327bfba269~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=tSAPIq6Z7zq%2FPpg6eMnojryALU8%3D

先用 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

使用说明:

67fbd5c345fc4370b12b695fb66bf1a6~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=2F4L2U2Zn6KQdG%2Fl%2BqZ4y2Xlz4Q%3D bad262399c1b467390da8c310a27fb5d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=DDot4iVVGpCVv1w0plMw1Qko%2Ffw%3D

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 3909634df01d4b76aa1a4abba6223d47~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=%2FLcvGPXILM65AZg4WCW0GIyKDM4%3D

运行:

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:

b85830aa54bb4809a5386e42df4cf35b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730173520&x-signature=XtaF1hZVINr9qPlfi%2Brjg7rbYwQ%3D 以上是[ ] Thymeleaf 这是知识点和基本用法的讲解。老实说,Thymeleaf 是一个模板引擎。它还是非常好用的,而且我个人认为它比jsp还要强大。你也可以自己输入代码,这对于检查文章是否有缺陷非常有用。请随意提及。让我们一起进步吧。

首先,我想介绍一下我自己。我2013年毕业于交通大学,曾就职于中小企业、华为、OPPO等大公司,2018年加入阿里巴巴,目前就职。我们知道,大多数初级和中级Java工程师如果想要提高自己的技能,往往要自己摸索成长或者报班,但培训机构近万元的课程费用其实还是比较紧张的。没有系统体系的自学效率低、耗时长,很容易陷入停滞状态,阻碍技术进步。因此,我收集了《java开发全套学习资料》份,分发给大家。它的初衷是为了帮助那些想要自学但不知道从哪里开始的朋友,同时又非常简单。减轻大家的负担。在下面添加您的名片以获得全套学习材料

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢