首页
学习
活动
专区
工具
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.4K20
  • Spring Boot与模板引擎:整合与实战

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

    27310

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

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

    5.2K30

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

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

    99420

    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 获取国际化消息。

    22310

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

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

    73210

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

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

    10.3K30

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

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

    55820

    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.3K51

    SpringBoot整合ThymeLeaf

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

    50931

    springboot 整合eWebOffice

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

    91620

    Thymeleaf【快速入门】Thymeleaf介绍

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

    3.7K30

    Spring Boot 入门

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

    2.2K20

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

    一、前言 什么是Spring BootSpring 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,比如我们应用依赖于

    90010

    JS-时间处理函数封装汇总 (更新...)

    前言: 最近听说thymeleaf好像也挺流行,还说是spring官方推荐使用,那thymeleaf究竟是什么呢?spring为什么推荐用它呢?怎么用呢?本文将为你揭秘!...模板引擎就是为了使用户页面业务数据相互分离而出现,将从后台返回数据生成特定格式文档,这里说特定格式一般都指HTML文档。...它优点是语法优雅易懂、原型即页面、遵从web标准。原型即页面是它特色,所谓原型即页面,就是你写html,静态去访问是什么样,动态去访问还是这样,只不过动态时候会把数据填充进去。...三、thymeleaf与springboot集成案例: 本案例使用gradle构建,未涉及数据库,数据保存在ConcurrentMap。未曾了解gradle老铁可以参考一下gradle使用。...('org.springframework.boot:spring-boot-starter-test') //thymeleaf依赖 compile('org.springframework.boot

    1.4K30
    领券