Spring 全家桶之 Spring Boot 2.6.4(六)- Web Develop(Part C)(上)

简介: Spring 全家桶之 Spring Boot 2.6.4(六)- Web Develop(Part C)

四、Employee List 开发

跳转至Employee List 页面

在templates目录下增加employee文件夹,将list.html页面放入该文件夹下。在controller包中新建EmployeeController,增加list方法来获取Employee列表,然后返回list.html页面

@Controller
public class EmployeeController {
    @Autowired
    private EmployeeMapper employeeMapper;
    @GetMapping("/list")
    public String list(Model model){
        Collection<Employee> list = employeeMapper.getAll();
        model.addAttribute("list", list);
        return "employee/list";
    }
}
复制代码

将dashboard.html页面的Employee List超链接改为/list

<li class="nav-item">
   <a class="nav-link" href="#" th:href="@{/list}">
      <svg xmlns="http://www.w3.org/2000/svg"  width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-users">
         <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
         <circle cx="9" cy="7" r="4"></circle>
         <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
         <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
      </svg>
      Employee List
   </a>
</li>
复制代码

重新启动应用,登录后点击Employee List

image.png

页面跳转到list.html页面,并且无任何错误信息

抽取公共页面

由于list.html和dashboard.html的顶部和侧边栏都是相同的,因此可以将顶部和侧边栏抽取为公共页面

Thymeleaf官网中 8 Template Layout 提到了如何抽取公共页面

image.png

首先要在index.html的顶部导航栏设置一个fragment

image.png

然后在list.html页面通过th:insert标签来引入前面设置的fragment

image.png

重新启动应用

image.png

页面顶部导航栏能够正确显示

页面引入方式包括th:insert,共有三种引入方式

  • th:insert,将公共片段插入到这个声明引入的元素中
  • th:replace,将声明引入的元素替换为公共片段
  • th:include,将被引入的片段内容包含到这个标签中

因此需要将insert替换为replace

image.png

抽取侧边栏时,给侧边栏设置一个id为selector

image.png

引入时通过id选择器引入公共片段

image.png

重新启动应用,查看页面顶部导航栏和侧边栏

image.png

修改过后,侧边栏能够正常显示

抽取公共片段到单独页面

上面定义的公共片段还是在具体的页面中,可以将公共页面,顶部和侧边栏单独抽取到一个html页面中,降低耦合

新建一个bar.html,将顶部导航栏和侧边栏拷贝到该页面中

image.png

在dashboard.html页面和list.html页面引入公共片段

image.png

侧边目录高亮

当进入到list.html页面时,左侧的目录并没有高亮显示,想要解决在具体页面高亮对应的目录需要在公共片段进行变量值判断,每个变量引用时都设置一个该片段独有的值。关于变量可以查看thymeleaf官方文档 8.2 Parameterizable fragment signatures

image.png

首先在公共片段目录增加变量判断,如果activeUri为list,就高亮,否则不高亮显示

image.png

list页面设置的activeUri变量的值为list

image.png

dashboard页面设置的activeUri的值为dashboard

image.png

重新启动应用

image.png

每个页面对应的目录都可以高亮显示

显示员工数据列表

使用for循环取出list列表中的全部属性,员工的gender使用0和1表示,这里可以进行判断,用男和女代替0和1

image.png

重启应用,查看员工列表

image.png

五、Add Employee

进入Add Employee 页面

Add Hero 增加超链接,跳转至添加页面

image.png

拷贝list.html页面并重命名为add.html,从Bootstrap [Components] (getbootstrap.com/docs/4.0/co…) 拷贝第二个表单到add.html页面

在EmployeeController增加视图映射,点击按钮跳转到add.html页面

@GetMapping("/employee")
public String employee(Model model){
    return "employee/add";
}



相关文章
|
13天前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
320 1
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
存储 JSON Java
195 0
|
20天前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
|
2月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
371 3
|
3月前
|
前端开发 Java API
Spring Cloud Gateway Server Web MVC报错“Unsupported transfer encoding: chunked”解决
本文解析了Spring Cloud Gateway中出现“Unsupported transfer encoding: chunked”错误的原因,指出该问题源于Feign依赖的HTTP客户端与服务端的`chunked`传输编码不兼容,并提供了具体的解决方案。通过规范Feign客户端接口的返回类型,可有效避免该异常,提升系统兼容性与稳定性。
197 0
|
6月前
|
前端开发 Java Maven
Spring 和 Spring Boot 之间的比较
本文对比了标准Spring框架与Spring Boot的区别,重点分析两者在模块使用(如MVC、Security)上的差异。Spring提供全面的Java开发基础设施支持,包含依赖注入和多种开箱即用的模块;而Spring Boot作为Spring的扩展,通过自动配置、嵌入式服务器等功能简化开发流程。文章还探讨了两者的Maven依赖、Mvc配置、模板引擎配置、启动方式及打包部署等方面的异同,展示了Spring Boot如何通过减少样板代码和配置提升开发效率。总结指出,Spring Boot是Spring的增强版,使应用开发、测试与部署更加便捷高效。
758 11
|
7月前
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
325 0
|
7月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
255 0