首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Spring Boot、Thymeleaf和Oracle:如何动态填充在片段中定义的网站菜单中的子菜单?

使用Spring Boot、Thymeleaf和Oracle动态填充网站菜单中的子菜单,可以按照以下步骤进行:

  1. 创建数据库表:在Oracle数据库中创建一个表,用于存储菜单和子菜单的信息。表结构可以包括菜单ID、菜单名称、菜单链接等字段。
  2. 创建实体类:在Spring Boot项目中创建一个与数据库表对应的实体类,使用注解将实体类与数据库表进行映射。
  3. 创建数据访问层(DAO):使用Spring Data JPA或MyBatis等框架创建数据访问层,实现对数据库表的增删改查操作。
  4. 创建服务层(Service):在服务层中编写业务逻辑,包括查询菜单和子菜单的方法。
  5. 创建控制器(Controller):使用Spring MVC创建控制器,处理前端请求,并调用服务层的方法获取菜单和子菜单数据。
  6. 创建前端页面:使用Thymeleaf模板引擎创建前端页面,定义网站菜单的HTML结构,并使用Thymeleaf的语法动态填充子菜单数据。

具体实现步骤如下:

  1. 创建数据库表:
代码语言:txt
复制
CREATE TABLE menu (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  link VARCHAR(100)
);
  1. 创建实体类:
代码语言:txt
复制
@Entity
@Table(name = "menu")
public class Menu {
  @Id
  private int id;
  
  private String name;
  
  private String link;
  
  // 省略getter和setter方法
}
  1. 创建数据访问层(DAO):
代码语言:txt
复制
@Repository
public interface MenuRepository extends JpaRepository<Menu, Integer> {
  // 省略自定义查询方法
}
  1. 创建服务层(Service):
代码语言:txt
复制
@Service
public class MenuService {
  @Autowired
  private MenuRepository menuRepository;
  
  public List<Menu> getAllMenus() {
    return menuRepository.findAll();
  }
  
  // 省略其他方法
}
  1. 创建控制器(Controller):
代码语言:txt
复制
@Controller
public class MenuController {
  @Autowired
  private MenuService menuService;
  
  @GetMapping("/menu")
  public String getMenu(Model model) {
    List<Menu> menus = menuService.getAllMenus();
    model.addAttribute("menus", menus);
    return "menu";
  }
}
  1. 创建前端页面(menu.html):
代码语言:txt
复制
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>Menu</title>
</head>
<body>
  <ul>
    <li th:each="menu : ${menus}">
      <a th:href="${menu.link}" th:text="${menu.name}"></a>
    </li>
  </ul>
</body>
</html>

在上述代码中,数据库表名为"menu",实体类为Menu,数据访问层使用了Spring Data JPA的MenuRepository接口,服务层使用了MenuService类,控制器使用了MenuController类,前端页面使用了Thymeleaf模板引擎的menu.html文件。

通过访问"/menu"路径,控制器会调用MenuService的getAllMenus方法获取菜单数据,并将数据传递给前端页面。前端页面使用Thymeleaf的语法动态填充菜单数据,实现了动态填充网站菜单中的子菜单。

推荐的腾讯云相关产品:腾讯云数据库(TencentDB)用于存储菜单数据,腾讯云云服务器(CVM)用于部署Spring Boot项目。

腾讯云数据库产品介绍链接:https://cloud.tencent.com/product/cdb 腾讯云云服务器产品介绍链接:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在Spring Bean实例过程中,如何使用反射和递归处理的Bean属性填充?

二、目标 首先我们回顾下这几章节都完成了什么,包括:实现一个容器、定义和注册Bean、实例化Bean,按照是否包含构造函数实现不同的实例化策略,那么在创建对象实例化这我们还缺少什么?...其实还缺少一个关于类中是否有属性的问题,如果有类中包含属性那么在实例化的时候就需要把属性信息填充上,这样才是一个完整的对象创建。...这部分大家在实习的过程中也可以对照Spring源码学习,这里的实现也是Spring的简化版,后续对照学习会更加易于理解 [spring-5-01.png] 属性填充要在类实例化创建之后,也就是需要在 AbstractAutowireCapableBeanFactory...另外是填充属性信息还包括了 Bean 的对象类型,也就是需要再定义一个 BeanReference,里面其实就是一个简单的 Bean 名称,在具体的实例化操作时进行递归创建和填充,与 Spring 源码实现一样...最后在属性填充时需要用到反射操作,也可以使用一些工具类处理。 每一个章节的功能点我们都在循序渐进的实现,这样可以让新人更好的接受关于 Spring 中的设计思路。

3.3K20

spring boot + mybatis + layui + shiro搭建后台权限管理系统

:/public/,从这里可以看出这里的静态资源路径都是在classpath中(也就是在项目路径下指定的这几个文件夹) 试想这样一种情况:一个网站有文件上传文件的功能,如果被上传的文件放在上述的那些文件夹中会有怎样的后果...网站数据与程序代码不能有效分离; 当项目被打包成一个.jar文件部署时,再将上传的文件放到这个.jar文件中是有多么低的效率; 网站数据的备份将会很痛苦。...动态菜单的实现 查找所有菜单; 循环中判断该菜单下是否有子菜单,如果有,生成子菜单目录; 【目前只实现了父子两级目录;原因是前端依赖的layui目前只有两级目录的效果;可自行扩展添加】 判断当前页面请求路径...id="+id+"&callback="+getCallback(); } 这样页面在请求到新页面后,依然包含了菜单页面的page uri,可以实现动态菜单中回显选中的效果。...spring boot + shiro 动态更新用户信息 链接入口--> spring boot + shiro 动态更新用户信息:https://blog.51cto.com/wyait/2112200

4.5K20
  • Spring Boot与模板引擎:整合与实战

    引言在开发动态网站或应用时,模板引擎扮演了重要的角色。它们允许开发者将数据和HTML模板合并,从而生成动态的网页。...本篇博客将探讨Spring Boot如何整合模板引擎,并通过一个实际例子,展示如何使用Thymeleaf进行网页渲染。模板引擎的核心概念1....模板引擎简介模板引擎允许开发者定义静态的HTML模板,其中包含动态的部分,这些部分在运行时将被实际的数据填充。这种方式提高了网页开发的效率和灵活性。2....Spring Boot整合模板引擎:Thymeleaf实战环境配置创建Spring Boot项目:使用Spring Initializr创建一个新的Spring Boot项目,选择Web和Thymeleaf...集成Thymeleaf添加依赖:在pom.xml中,确保包含Thymeleaf的依赖,Spring Boot的自动配置功能将自动配置Thymeleaf。

    30620

    重学SpringBoot系列之整合静态资源与模板引擎

    关于webjars资源,有一个专门的网站https://www.webjars.org/,我们可以到这个网站上找到自己需要的资源,在自己的工程中添加入maven依赖,即可直接使用这些资源了。...我们都知道,JSP在第一次执行的时候需要转换成Servlet类,开发阶段进行功能调适时,需要频繁的修改JSP,每次修改都要编译和转换,那么试想一天中我们浪费在程序编译的时间有多少。...spring boot目前官方集成的框架只有freemarker和Thymeleaf,官方明确建议放弃velocity。...,一定程度上造成安全问题,所以使用webjars就别用链接表达式): 其它表达式 在基础语法中,默认支持字符串连接、数学运算、布尔逻辑和三目运算等。...即可以在一个html页面内定义多个片段. ~{ ::selector}表示在当前html页查找代码片段 ---- 多种片段组合方式 在实际使用中,我们往往使用更简洁的表达,去掉表达式外壳直接填写片段名

    5.2K31

    使用Java实现树形下拉菜单:从零开始到完全掌握

    ✍ 个人主页—— 默语 的博客 优秀内容 《java 面试题大全》 《java 专栏》 《idea技术专区》 《spring boot 技术专区》 《MyBatis从入门到精通》...希望通过我的分享,帮助大家更好地了解和使用各类技术产品,在不断的学习过程中,可以帮助到更多的人,结交更多的朋友....以下是进一步优化和完善的版本,包含详细注释,更加清晰的模块划分,及进一步优化的代码实现: 使用Java实现树形下拉菜单:从零开始到完全掌握 作者:默语 摘要 本篇博客将带领读者通过Java代码实现一个树形下拉菜单...,并在此过程中详细讲解其设计思路和实现细节。...本文目标 我们将实现一个简单、清晰、易扩展的树形下拉菜单功能,采用Spring Boot作为框架,搭配H2数据库和Thymeleaf模板引擎展示结果。 正文 1.

    11410

    Spring Boot 2.X(十八):集成 Spring Security-登录认证和权限控制

    前言 在企业项目开发中,对系统的安全和权限控制往往是必需的,常见的安全框架有 Spring Security、Apache Shiro 等。...默认情况下,SecurityContextHolder 会使用 ThreadLocal 来存储这些信息,意味着安全上下文始终可用于同一执行线程中的方法。...获取有关当前用户的信息 因为身份信息与线程是绑定的,所以可以在程序的任何地方使用静态方法获取用户信息。...该接口中方法如下: 获取授予用户的权限 Spring Security 实战 1.系统设计 本文主要使用 Spring Security 来实现系统页面的权限控制和安全认证,本示例不做详细的数据增删改查...1.1 技术栈 编程语言:Java 编程框架:Spring、Spring MVC、Spring Boot ORM 框架:MyBatis 视图模板引擎:Thymeleaf 安全框架:Spring Security

    3.5K21

    Spring Boot 2.X(十八):集成 Spring Security-登录认证和权限控制

    前言 在企业项目开发中,对系统的安全和权限控制往往是必需的,常见的安全框架有 Spring Security、Apache Shiro 等。...获取有关当前用户的信息 因为身份信息与线程是绑定的,所以可以在程序的任何地方使用静态方法获取用户信息。...该接口中方法如下: 接口方法 功能说明 getAuthorities() 获取授予用户的权限 getPassword() 获取用户正确的密码,这个密码在验证时会和 Authentication 中的 getCredentials...Spring Security 实战 1.系统设计 本文主要使用 Spring Security 来实现系统页面的权限控制和安全认证,本示例不做详细的数据增删改查,sql 可以在完整代码里下载,主要是基于数据库对页面...-- thymeleaf --> org.springframework.boot spring-boot-starter-thymeleaf

    1.1K31

    Spring Boot快速开发企业级Admin管理后台

    特性 | Features 易于上手:会简单的 Spring Boot 基础知识即可 使用简单:仅需了解 @Erupt 与 @EruptField 两个注解即可上手开发 代码简洁:前端零代码,后端 template...,不影响Spring Boot其他功能或三方库库的使用 多数据源:支持:MySQL、Oracle、SQL Server、PostgreSQL、H2,甚至支持 MongoDB 大量组件:滑动输入、时间选择...、自定义页面、动态权限管理、生命周期函数、自定义OSS等 界面美观:每个交互都精心设计,产品思维打磨,只为了更好的操作体验 权限管理:用户管理、角色管理、组织管理、菜单管理、登录日志、操作日志等 高安全性...这正是建立 erupt 的初衷,对于大部分常用页面,应该使用最简单的方法来实现,甚至不需要学习各种框架和工具,专注核心业务,告别 996,省下的时间做自己喜欢做的事,从此不再因为繁琐的后台开发而焦头烂额...,邮件发送,任务日志等功能 ├── erupt-security -- 接口数据安全模块 ├── erupt-upms -- 用户权限管理 ├── erupt-tpl -- 支持在 erupt 中自定义页面

    1K20

    Spring Boot快速开发企业级Admin管理后台

    特性 | Features 易于上手:会简单的 Spring Boot 基础知识即可 使用简单:仅需了解 @Erupt 与 @EruptField 两个注解即可上手开发 代码简洁:前端零代码,后端 template...,不影响Spring Boot其他功能或三方库库的使用 多数据源:支持:MySQL、Oracle、SQL Server、PostgreSQL、H2,甚至支持 MongoDB 大量组件:滑动输入、时间选择...、自定义页面、动态权限管理、生命周期函数、自定义OSS等 界面美观:每个交互都精心设计,产品思维打磨,只为了更好的操作体验 权限管理:用户管理、角色管理、组织管理、菜单管理、登录日志、操作日志等 高安全性...这正是建立 erupt 的初衷,对于大部分常用页面,应该使用最简单的方法来实现,甚至不需要学习各种框架和工具,专注核心业务,告别 996,省下的时间做自己喜欢做的事,从此不再因为繁琐的后台开发而焦头烂额...,邮件发送,任务日志等功能 ├── erupt-security -- 接口数据安全模块 ├── erupt-upms -- 用户权限管理 ├── erupt-tpl -- 支持在 erupt 中自定义页面

    1.1K20

    重学SpringBoot3-集成Thymeleaf

    Thymeleaf 的主要目标是提供一个优雅和高度可维护的创建模板的方式。为了实现这一点,它建立在自然模板的概念上,这意味着你可以将静态原型直接转换成动态模板,无需更改标记。...>spring-boot-starter-thymeleaf 如果你使用Gradle,可以在 build.gradle文件中添加: implementation...通过这些步骤,你就可以在 Spring Boot 3 项目中使用 Thymeleaf 模板引擎来渲染动态 Web 页面了。这种方式提供了一个强大而灵活的方法来构建交互式的 Web 应用。...Thymeleaf基本语法 Thymeleaf的表达式和操作主要在HTML模板中以属性的形式出现,使用 th:前缀。以下是一些常用的Thymeleaf语法: 变量表达式 ${...}...在 Spring Boot 应用中,你可以通过 MessageSource 获取国际化的消息。

    32710

    Spring Cloud 2.x系列之模板引擎thymeleaf

    相对html+js的传统设计,现在很多网站都采用div&css+标签化+模块化的设计。模板引擎根据一定的语义,将数据填充到模板中,产生最终的HTML页面。...相较与其他的模板引擎,thymeleaf它有如下三个特点: (a) 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,同时也可以让程序员在服务器查看带数据的动态页面效果。...浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。...(b) 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、改jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。...=.html #Thymeleaf模板解析器在解析器链中的顺序。

    74310

    Thymeleaf使用技巧:使用片段(fragment)实现母版页(Layout)功能

    一、前言 为什么要使用模板页(Layout) 网站中往往有通用的布局,比如导航、底部等等,这些页面中共用的部分,就需要放在母版页(Layout)里面。...这样每个页面只用关注本页面要完成的功能/内容即可。提高了开发效率,也降低了公共部分的维护成本。...如果你还未使用过Thymeleaf,可以先阅读:使用Spring Boot+Thymeleaf模板引擎开发Web应用 二、实现方式 母版页代码(resources/templates/shared/layout1...="${title}"> 默认内容 子页面代码... 语法/标签说明 语法/标签 说明 layout:fragment 定义模板片段,可以在子页面用同名片段覆盖 layout:decorator 引用Thymeleaf

    10.4K30

    推荐SpringBoot+Bootstrap的极速后台开发框架

    在实习管理系统领取途中,有位老哥问:请问一下有没有springboot和thymeleaf以及bootstarp的单体项目呢?...RuoYi 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf、Bootstrap),内置模块如:部门管理...菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。...,则表明环境搭建成功 建议使用Git克隆,因为克隆的方式可以和RuoYi随时保持更新同步。...,star 已经有了31K了,就算不使用,自己用来学习,学习思想也是不错的,作者也在不断更新~ 无论是拿来做项目或者二次开发,都是非常不错的,所以推荐给大家,值得收藏和推荐给朋友哦~

    61820

    Thymeleaf【快速入门】Thymeleaf介绍

    相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。...浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。...事实上,我们甚至在我们的标签中添加了一个xmlns:th属性,这绝对是非HTML5标准:thymeleaf.org"> 不管怎样,你已经看到了我们将如何使用...在 JavaScript 中访问 model 首先我们需要学习如何在Thymeleaf中引用静态资源,很简单,使用@{}就可以,这在JSP下是极易出错的。...代码解释: 我们可以使用th:fragment属性来定义被包含的模板片段,然后使用th:include和th:replace两个标签来直接引用标记好的片段,上面hello.html其实就相当于: <!

    3.8K30

    SpringBoot整合ThymeLeaf

    相较与其他的模板引擎,它有如下三个极吸引人的特点 Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。...浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时, Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。...不仅如此,在 Java 中模板引擎还有很多,模板引擎是动态网页发展进步的产物,在最初并且流传度最广的 jsp 它就是一个模板引擎。...并且随着市场使用的验证 Thymeleaf 也达到的它的目标和大家对他的期望,在实际开发有着广泛的应用。...jar 包依赖,我们只需填写依赖名称配置即可引入该依赖,在本系统中引入 Spring web 模块 (Springmvc) 和 Thymeleaf 的依赖。

    57631

    Spring Boot + Thymeleaf 带你玩转 Web 页面开发!

    本文将介绍如何使用Spring Boot框架,整合 Thymeleaf 模板引擎来开发Web页面。 新建Spring Boot项目 首先我们需要新建一个Spring Boot项目。...可以使用Spring官方的 Spring Initializr 来快速生成一个最简单的Spring Boot项目。...8 # 设置是否缓存 Thymeleaf 模板文件 spring.thymeleaf.cache=false 以上配置中,我们设置了 Thymeleaf 模板文件的路径、后缀名、HTML 页面编码和是否缓存...模板引擎使用方法介绍 在编写 HTML 页面时,我们可以使用Thymeleaf的模板语法,对页面进行动态渲染。...; return "index"; } } 全文小结 本文介绍了如何使用Spring Boot框架,整合 Thymeleaf 模板引擎来开发Web页面,并介绍了 Thymeleaf

    1.4K51

    springboot 整合eWebOffice

    网上没有相关使用资料及介绍,能找到的只有demo和API文档,所以写下这篇,给后面的人提供个思路。 1、将下载的试用版控件解压, ?...#缓存 spring.thymeleaf.cache=false spring.thymeleaf.prefix=classpath:/page/ spring.thymeleaf.check-template-location...eWebOffice1.RefreshQuickBar();//在设置按钮后要刷新才效果, //使用下载到本地,再打开的方式,使用WebOpen方式会一直提示“无效文档...,可以随便定义,不要与系统自带冲突即可,演示中为了区别,快捷工具栏上的按钮定义为"QB_"开头,Office文件菜单下的按钮定义为"File_"开头。...,但是在OnLoad方法里设置的,如果和Init方法里的不一样,本身加载文件也不会很快,所以按钮变化很明显。

    92420

    Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序

    一、前言 什么是Spring Boot? Spring Boot就是一个让你使用Spring构建应用时减少配置的一个框架。约定优于配置,一定程度上提高了开发效率。...(1)在src/main创建文件夹:java,并使用右键菜单Mark Directory AS->Sources Root (2)设置将src/resources Mark:使用右键菜单Mark Directory...7、 启动 使用快捷键Shift+F10启动即可 (或者在CourseApplication编辑区,使用右键菜单->Run “CourseApplication”启动) 控制台输出片段: [main...,Spring Boot也是跑在Tomcat中的,关键是本机不用安装也不用做任何Tomcat的配置。...方法的映射 @ResponseBody 表示将结果直接填充到HTTP的响应体中,用于构建API @EnableAutoConfiguration 将根据添加的jar依赖自动配置Spring,比如我们的应用依赖于

    90910

    Spring Boot 入门

    Spring Boot 支持多种注入配置文件属性的方式,下面来介绍如何使用注解 @ConfigurationProperties 和 @Value 注入属性。...`@Configuration` 编写自定义配置类 在 Spring Boot 框架中,推荐使用配置类的方式向容器中添加和配置组件。...在 Spring Boot 框架中,通常使用 @Configuration 注解定义一个配置类,Spring Boot 会自动扫描和识别配置类,从而替换传统 Spring 框架中的 XML 配置文件。...因此在定义项目包结构时,要求定义的包结构非常规范,项目主程序启动类要定义在最外层的根目录位置,然后在根目录位置内部建立子包和类进行业务开发,这样才能够保证定义的类能够被组件扫描器扫描。...这进一步说明了 Spring Boot 与 Thymeleaf 整合成功,完成了静态资源的引入和动态数据的显示。

    2.2K20
    领券