SpringBoot日记——Thymeleaf进阶小篇
我们做好了登录页,那设计一个场景吧,比如我们登录后跳转到公司主页,想从公司主页再跳转到员工列表页;
这样的场景我们该如何实现,首先要知道一些基础知识,就是SpringBoot的一些关于请求的架构知识:
功能 | 请求URI | 请求方式 |
查询所有员工 | emps | GET |
查询某个员工 | emp/{id} | GET |
跳转到添加页 | emp | GET |
添加员工 | emp | POST |
跳转到修改页 | emp | GET |
修改员工信息 | emp{id} | PUT |
删除员工 | emp{id} | DELETE |
其实,这些请求在我们做登录页的时候已经有接触过了,那么我们来看后边如何应用。
页面跳转和编写替换
我们从主页中已经写过了如何从主页跳转到列表页,那么我们现在要做的就是,在列表页中展示正确的数据。
1. 首先,添加超链接,也就是点击跳转后的页面,同样适用thymeleaf模板,引入模板和属性
xmlns:th="http://www.thymeleaf.org"
来看没有修改前的跳转页面的几个地方:
a. 头部的名字不是我们首页的admin;
b. 侧边栏中我们修改的员工管理的中文不见了;
c. 列表数据目前OK;
针对以上的问题,我要做的就是替换头部和侧边栏,但是让我们按照首页一样再写一遍会很麻烦,所以Thymeleaf给了我们一些可以替换的功能;
看官方文档如何写的:
效果图:
两种替换公式:
~{templatename: : selector} :~{模板名::选择器}
~{templatename: : fragmentname} :~{模板名::片段名}
三个替换属性:
th:insert :将声明的片段,整个插入到元素中
th:replace :将声明引入的元素替换为公告元素
th:includ :将被引入的元素内容包含在标签中
1. 那,在我们的html中应用一下,就是这么写的:(在我们需要替换的顶部栏,也就是用户名那里,把这个元素后边加上这个th的属性)
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" th:fragment="topbar">
2. 然后,在我们的list.htm页中加入这样的一段即可实现:(注意,我这里没有写~{},其实是可以的;一般只有在行内才需要写,比如[[~{}]]或者[(~{})])
<div th:replace="dashboard::topbar"></div>
实现效果如图:*(看,名字已经替换成了首页我们登录时的用户名)
3. 接下来,替换侧边栏,同样的方法,这会我使用选择器的那个公式:(给想要替换的侧边栏,添加一个id)
<nav class="col-md-2 d-none d-md-block bg-light sidebar" id="sidebar">
4. 再到list.html中去引入这个id:
<div th:replace="~{dashboard::#sidebar}"></div>
看效果:(首页的中文页替换过来了),是不是这样写页面就简单了很多~
SpringBoot日记——Thymeleaf进阶小篇的更多相关文章
- SpringBoot日记——Thymeleaf模板引擎篇
开发通常我们都会使用模板引擎,比如:JSP.Velocity.Freemarker.Thymeleaf等等很多,那么模板引擎是干嘛用的? 模板引擎,顾名思义,是一款模板,模板中可以动态的写入一些参数, ...
- SpringBoot日记——信息修改PUT篇
我们常用的功能,除了post和get,还有put和delete,这篇文章就介绍一下这个put的基本用法. 页面跳转和回显 1. 首先,我们之前的页面已经将添加和修改的按钮都做好了,那么如何实现这些按钮 ...
- 从.Net到Java学习第六篇——SpringBoot+mongodb&Thymeleaf&模型验证
SpringBoot系列目录 SpringBoot整合mongodb MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.如果你没用过Mong ...
- SpringBootTest单元测试实战、SpringBoot测试进阶高级篇之MockMvc讲解
1.@SpringBootTest单元测试实战 简介:讲解SpringBoot的单元测试 1.引入相关依赖 <!--springboot程序测试依赖,如果是自动创建项目默认添加--> &l ...
- Springboot+JPA+Thymeleaf 校园博客完整小网站
本文所属[知识林]:http://www.zslin.com/web/article/detail/35 此项目是一个比较简易的校园博客.麻雀虽小五脏俱全,虽然是比较简易的但是涉及的知识点还是比较全面 ...
- 从.Net到Java学习第九篇——SpringBoot下Thymeleaf
从.Net到Java学习系列目录 Thymeleaf概述 Thymeleaf 是一个流行的模板引擎,该模板引擎采用java语言开发.模板引擎是一个技术名称,是跨领域平台的概念,在java语言体系下有模 ...
- 【SpringBoot】单元测试进阶实战、自定义异常处理、t部署war项目到tomcat9和启动原理讲解
========================4.Springboot2.0单元测试进阶实战和自定义异常处理 ============================== 1.@SpringBoot ...
- 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】
老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...
- SpringBoot之旅第四篇-web开发
一.引言 有了自动配置,springboot使web开发变得简单,这个在springboot之旅中的第一篇中就有体现,实际的开发中当然不会这么简单,很多时候我们都需要自己去定制一些东西.web开发的东 ...
随机推荐
- 【Excel】坐下,VLOOKUP基本操作
坐下,VLOOKUP基本操作 VLOOKUP如何使用我就不在这里详细介绍了,简单说一下好了. 如上图,第一个填写你要查找的值,第二个空选取你查找的范围,第三个空填你要得到第几列的值,最后选 ...
- Hadoop HBase概念学习系列之优秀行键设计(十六)
我们通过行键访问HBase.尽管使用扫描过滤器可以一次性指明大量的键,但是HBase仅仅能够根据行键识别出一行. 优秀的行键设计可以保证良好的HBase性能. 1.行键存在于HBase中的每一个单元格 ...
- 内置数据结构(tuple)
一.元组(tuple) 元组不能增.删和改,所以元组的元素只能查. tp = tuple() #初始化一个元组 tp = () #同上 tp = (1, 2, 3, 4,) #错误的定义元组方式 t ...
- ZT eoe android4.2 Bluetooth记录01-结构和代码分布
android4.2 Bluetooth记录01-结构和代码分布 作者:cnhua5更新于 08月21日访问(697)评论(2) 在android4.2中,Google更换了android的蓝牙协议栈 ...
- 使用concurrent.futures模块并发,实现进程池、线程池
Python标准库为我们提供了threading和multiprocessing模块编写相应的异步多线程/多进程代码 从Python3.2开始,标准库为我们提供了concurrent.futures模 ...
- php添加mongo模块
可以从 http://pecl.php.net/package/mongo 下载目前的stable稳定版 我添加的是mongo-1.5.2.tgz # wget http://pecl.php.net ...
- zookeeper for windows
1,安装java环境,安装完java之后,添加用户变量.并在命令行中测试 java -version . 2,下载zookeeper http://mirrors.shu.edu.cn/apache/ ...
- debian 7上安装svn
1.在终端中直接输入 sudo apt-get install subversion,选择安装即可 2.查看版本命令 svnserve --version(更多命令直接键入svnserve --he ...
- SSH环境搭建,配置整合初步(一)
1,新Webproject.并把编码设为utf-8(全部的都是uft8数据库也是,就不会乱码了)2.加入框架环境JunitStruts2Hibernate Spring3,整合SSHStruts2与S ...
- [SDOI2010]Hide and Seek
题目 非常显然就是求一下距离每一个点曼哈顿距离最近的点和最远的点就好了 最远点非常好算,我们建完\(kd-tree\)之后直接暴力就好了 找最近点的时候会有这样一个问题,就是自己找到了自己 所以我们需 ...