Spring Boot入门 (十九) 之 CURD实验 员工列表的公共页抽取 以及公共代码的抽取

简介: Spring Boot入门 (十九) 之 CURD实验 员工列表的公共页抽取 以及公共代码的抽取

1.员工列表页

前边我们实现了登录功能,并且登陆进去进去了后台管理页面

下面我们要实现的是,点击Customers就出来员工列表也就是list.html

我们先找到Customers的位置,并把他的href跳转改了

由于我们使用的是restfulCURD,所以可以这么写

记得在HTML里边写上thymeleaf的约束头


下边我们要写controller来实现路由

我们先把list.html放到emps包里边方便管理

然后新建EmployeeController.java类,

package com.zhanshen.springbootweb.controller;
import com.zhanshen.springbootweb.dao.EmployeeDao;
import com.zhanshen.springbootweb.entities.Employee;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.Collection;
@Controller
public class EmployeeController {
    /**
     * 这个是员工的Dao层,查询所有员工,之前的代码我们引入了,里边有查询的方法
     */
    @Autowired
    EmployeeDao employeeDao;
    //查询所有员工
    @GetMapping("/emps")
    public String list(Model model) {
        /**
         * 查询得到所有的员工,然后传入Model ,用于把查询得到的查询所有的数据放到请求域中,最后返回到list.html里边
         */
        Collection<Employee> employees = employeeDao.getAll();
        model.addAttribute("emps", employees);
        return "emps/list";
    }
}

这样就可以跳转到list页面


2.公共代码片段的抽取

我们会发现list的侧导航栏和头部导航栏的内容是一样的,所以我们可以让他们去共用一套代码

这里的头部和侧栏都是公用的,我们找到他们的代码

,先来看头部的栏目

代码是body里边的一个叫做<nav>标签的导航栏


通过th:fragment="xxx"可以把它作为公共的模板,然后我们在其他地方引入

利用th:insert"~{模板名 :: 模块名}"来引入

会发现,我们的div里边就是我们引入的模块

当然我们发现,我们在原来的nav标签上边又套了一层div这并不是很友好,所以我们还有其他的两种写法,这三种写法分别如下


th:insert"~{模板名:: 模块名}"

th:replace"~{模板名:: 模块名}"

th:include"~{模板名:: 模块名}"

第一个的用法我们看到了就是在你所写的标签里边插入,这样会多出一层标签,下面两个用法如下

<footer th:fragment="copy">
    &copy; 2011 The Good Thymes Virtual Grocery
</footer>
<body>
...
<div th:insert="footer :: copy"></div>
<div th:replace="footer :: copy"></div>
<div th:include="footer :: copy"></div>
</body>

我们比较效果如下

<body>
...
<div>
<footer>
&copy; 2011 The Good Thymes Virtual Grocery
</footer>
</div>
<footer>
&copy; 2011 The Good Thymes Virtual Grocery
</footer>
<div>
&copy; 2011 The Good Thymes Virtual Grocery
</div>
</body>

发现第二个是我们想要的,把他所在的标签做替换,第三个则是把要包含的标签去掉,取里边的内容

于是我们换成第二个就好了

这样nav就引入进来了

我们也把左侧的导航栏引入进来


除了用th:fragment外我们还可以直接用选择器,如下:


设置id为leftbar

然后


这样既可

相关文章
|
8天前
|
Java 应用服务中间件 数据库连接
SpringBoot入门(2) - SpringBoot HelloWorld
SpringBoot入门(2) - SpringBoot HelloWorld
25 2
SpringBoot入门(2) - SpringBoot HelloWorld
|
9天前
|
Java 中间件
SpringBoot入门(6)- 添加Logback日志
SpringBoot入门(6)- 添加Logback日志
43 5
|
8天前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
25 4
|
8天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
20 2
 SpringBoot入门(7)- 配置热部署devtools工具
|
19天前
|
Java 应用服务中间件 数据库连接
SpringBoot入门(2) - SpringBoot HelloWorld
SpringBoot入门(2) - SpringBoot HelloWorld
17 2
SpringBoot入门(2) - SpringBoot HelloWorld
|
14天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
55 13
|
9天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
24 4
|
14天前
|
缓存 监控 Java
|
14天前
|
缓存 监控 Java
|
19天前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
18 2