我们做好了登录页,那设计一个场景吧,比如我们登录后跳转到公司主页,想从公司主页再跳转到员工列表页;

这样的场景我们该如何实现,首先要知道一些基础知识,就是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进阶小篇的更多相关文章

  1. SpringBoot日记——Thymeleaf模板引擎篇

    开发通常我们都会使用模板引擎,比如:JSP.Velocity.Freemarker.Thymeleaf等等很多,那么模板引擎是干嘛用的? 模板引擎,顾名思义,是一款模板,模板中可以动态的写入一些参数, ...

  2. SpringBoot日记——信息修改PUT篇

    我们常用的功能,除了post和get,还有put和delete,这篇文章就介绍一下这个put的基本用法. 页面跳转和回显 1. 首先,我们之前的页面已经将添加和修改的按钮都做好了,那么如何实现这些按钮 ...

  3. 从.Net到Java学习第六篇——SpringBoot+mongodb&Thymeleaf&模型验证

    SpringBoot系列目录 SpringBoot整合mongodb MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.如果你没用过Mong ...

  4. SpringBootTest单元测试实战、SpringBoot测试进阶高级篇之MockMvc讲解

    1.@SpringBootTest单元测试实战 简介:讲解SpringBoot的单元测试 1.引入相关依赖 <!--springboot程序测试依赖,如果是自动创建项目默认添加--> &l ...

  5. Springboot+JPA+Thymeleaf 校园博客完整小网站

    本文所属[知识林]:http://www.zslin.com/web/article/detail/35 此项目是一个比较简易的校园博客.麻雀虽小五脏俱全,虽然是比较简易的但是涉及的知识点还是比较全面 ...

  6. 从.Net到Java学习第九篇——SpringBoot下Thymeleaf

    从.Net到Java学习系列目录 Thymeleaf概述 Thymeleaf 是一个流行的模板引擎,该模板引擎采用java语言开发.模板引擎是一个技术名称,是跨领域平台的概念,在java语言体系下有模 ...

  7. 【SpringBoot】单元测试进阶实战、自定义异常处理、t部署war项目到tomcat9和启动原理讲解

    ========================4.Springboot2.0单元测试进阶实战和自定义异常处理 ============================== 1.@SpringBoot ...

  8. 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】

    老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...

  9. SpringBoot之旅第四篇-web开发

    一.引言 有了自动配置,springboot使web开发变得简单,这个在springboot之旅中的第一篇中就有体现,实际的开发中当然不会这么简单,很多时候我们都需要自己去定制一些东西.web开发的东 ...

随机推荐

  1. 铁乐学Python_day11_闭包函数

    一.[函数名] 1)函数名本质上它也是一种变量,特殊的变量: (碰到同名其它变量,依照从上往下的代码执行赋值.) 单独打印函数名,输出的是它对应的内存地址: 例: def funcl(): print ...

  2. November 29th 2016 Week 49th Tuesday

    It is not easy to meet each other in such a big world. 世界这么大,能遇见,不容易. To meet each other, to make ne ...

  3. Inter-System Differencing between GPS and BDS for Medium-Baseline RTK Positioning-12-18

    顾及系统间偏差的双系统中长基线RTK定位 主要适用于:严峻地区,比如城市峡谷和被高大树木遮挡. 伪距码系统间偏差可以通过先验标定进行改正或者参数化.已知先验载波系统间偏差,那么两个系统重叠频率的模糊度 ...

  4. UserUI程序详解

    重要内容放前面:https://blog.csdn.net/yizhou2010/article/details/52837944 作者可关注 1.进行初始化,会用到AfxWinmain函数:创建当前 ...

  5. bin/hdfs dfs命令

    appendToFile Usage: hdfs dfs -appendToFile <localsrc> ... <dst> 追加一个或者多个文件到hdfs制定文件中.也可以 ...

  6. JSTORM 问题排查

    ## 运行时topology的task列表中报"task is dead"错误有几个原因可能导致出现这个错误: 1. task心跳超时,导致nimbus主动kill这个task所在 ...

  7. Type Safety and Type Inference

    Swift is a type-safe language. A type safe language encourages you to be clear about the types of va ...

  8. PHP学习笔记一:谁动了你的mail(),PHP?

    PHP编写邮件发送的函数时候,会出现一个很奇怪的问题,那就是: Warning: mail(): Failed to connect to mailserver at "localhost& ...

  9. 20145203盖泽双 《Java程序设计》第9周学习总结

    20145203盖泽双 <Java程序设计>第9周学习总结 教材学习内容总结 1.撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. 2.JDBC目的:让Java程序设 ...

  10. ArrayList实现原理及源码分析之JDK8

    转载 ArrayList源码分析 一.ArrayList介绍 Java 集合框架主要包括两种类型的容器: 一种是集合(Collection),存储一个元素集合. 一种是图(Map),存储键/值对映射. ...