总结
1. 公共片段的抽取、引入
2. 片段的参数传递
一、实验要求
RestfulCRUD:CRUD满足Rest风格;
URI: /资源名称/资源标识 HTTP请求方式区分对资源CRUD操作
普通CRUD(uri来区分操作) | RestfulCRUD | |
---|---|---|
查询 | getEmp | emp---GET |
添加 | addEmp?xxx | emp---POST |
修改 | updateEmp?id=xxx&xxx=xx | emp/{id}---PUT |
删除 | deleteEmp?id=1 | emp/{id}---DELETE |
2)、实验的请求架构;
实验功能 | 请求URI | 请求方式 |
---|---|---|
查询所有员工 | emps | GET |
查询某个员工(来到修改页面) | emp/1 | GET |
来到添加页面 | emp | GET |
添加员工 | emp | POST |
来到修改页面(查出员工进行信息回显) | emp/1 | GET |
修改员工 | emp | PUT |
删除员工 | emp/1 | DELETE |
二、公共元素的抽取
1. 抽取公共片段
(1)语法
----方式一 th:fragement 定义片段 ---
<div th:fragment="copy">
© 2011 The Good Thymes Virtual Grocery
</div>
----方式一 id 定义片段 ---
<div id="copy2">
© 2011 The Good Thymes Virtual Grocery
</div>
(2)项目中的具体实现
bar.html
<!--topbar-->
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" th:fragment="topbar">
...
</nav>
<!--sidebar-->
<nav class="col-md-2 d-none d-md-block bg-light sidebar" id="sidebar">
</nav>
2. 引入片段
(1)语法
<div th:insert="~{footer :: copy}"></div>
~{templatename::fragmentname}:模板名::片段名
<div th:insert="~{footer :: #copy2}"></div>
~{templatename::selector}:模板名::选择器
【提示】模板名就是类路径下templates文件夹下的文件的路径
(2)项目中的具体实现
dashboard.html
<!--引入topbar-->
<div th:replace="commons/bar::topbar"></div>
<!--引入sidebar-->
<div th:replace="commons/bar::#sidebar"></div>
3. 引入片段时参数的传递
案例:高亮显示点击的菜单
(1)bar.html
(2)main.html
【提示】在每一个界面都引入侧边栏、顶部栏的片段,不同的界面传递的参数是不同的!例如主界面传递的参数是main.html,若是点击了显示main.html的菜单,该菜单的类名就会动态的加上active,以此实现动态添加active的类名来实现高亮!
4. 抽取片段的方式
th:insert:将公共片段整个插入到声明引入的元素中
th:replace:将声明引入的元素替换为公共片段
th:include:将被引入的片段的内容包含进这个标签中
<footer th:fragment="copy">
© 2011 The Good Thymes Virtual Grocery
</footer>
引入方式
<div th:insert="footer :: copy"></div>
<div th:replace="footer :: copy"></div>
<div th:include="footer :: copy"></div>
效果
<div>
<footer>
© 2011 The Good Thymes Virtual Grocery
</footer>
</div>
<footer>
© 2011 The Good Thymes Virtual Grocery
</footer>
<div>
© 2011 The Good Thymes Virtual Grocery
</div>