layUI二级菜单

这篇博客详细介绍了如何结合layUI框架,通过Java、SQL和数据库技术,实现二级菜单的功能。从连接数据库、创建实体类、设计DAO方法、处理web层逻辑到XML配置,再到最终的前台代码展示,一步步解析整个过程。
摘要由CSDN通过智能技术生成

目录

连接数据库 :

实体类:

dao方法:

web层

xml配置:

前台代码:


连接数据库 :

#mysql8
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/t280?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&useSSL=true
user=root
pwd=123456
package com.zking.util;
 
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
 
/**
 * 提供了一组获得或关闭数据库对象的方法
 * 
 */
public class DBAccess {
	private static String driver;
	private static String url;
	private static String user;
	private static String password;
 
	static {// 静态块执行一次,加载 驱动一次
		try {
			InputStream is = DBAccess.class
					.getResourceAsStream("config.properties");
 
			Properties properties = new Properties();
			properties.load(is);
 
			driver = properties.getProperty("driver");
			url = properties.getProperty("url");
			user = properties.getProperty("user");
			password = properties.getProperty("pwd");
 
			Class.forName(driver);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}
 
	/**
	 * 获得数据连接对象
	 * 
	 * @return
	 */
	public static Connection getConnection() {
		try {
			Connection conn = DriverManager.getConnection(url, user, password);
			return conn;
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}
 
	public static void close(ResultSet rs) {
		if (null != rs) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
				throw new RuntimeException(e);
			}
		}
	}
 
	public static void close(Statement stmt) {
		if (null != stmt) {
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
				throw new RuntimeException(e);
			}
		}
	}
 
	public static void close(Connection conn) {
		if (null != conn) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
				throw new RuntimeException(e);
			}
		}
	}
 
	public static void close(Connection conn, Statement stmt, ResultSet rs) {
		close(rs);
		close(stmt);
		close(conn);
	}
 
	public static boolean isOracle() {
		return "oracle.jdbc.driver.OracleDriver".equals(driver);
	}
 
	public static boolean isSQLServer() {
		return "com.microsoft.sqlserver.jdbc.SQLServerDriver".equals(driver);
	}
	
	public static boolean isMysql() {
		return "com.mysql.cj.jdbc.Driver".equals(driver);
	}
 
	public static void main(String[] args) {
		Connection conn = DBAccess.getConnection();
		System.out.println(conn);
		DBAccess.close(conn);
		System.out.println("isOracle:" + isOracle());
		System.out.println("isSQLServer:" + isSQLServer());
		System.out.println("isMysql:" + isMysql());
		System.out.println("数据库连接(关闭)成功");
	}
}
 
package com.zking.util;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
public class BuildTree {
 
	/**
	 * 默认-1为顶级节点
	 * @param nodes
	 * @param <T>
	 * @return
	 */
	public static <T> TreeVo<T> build(List<TreeVo<T>> nodes) {
 
		if (nodes == null) {
			return null;
		}
		List<TreeVo<T>> topNodes = new ArrayList<TreeVo<T>>();
 
		for (TreeVo<T> children : nodes) {
			String pid = children.getParentId();
			if (pid == null || "-1".equals(pid)) {
				topNodes.add(children);
 
				continue;
			}
 
			for (TreeVo<T> parent : nodes) {
				String id = parent.getId
Layui是一款轻量级的前端UI框架,它提供了丰富的组件和模块,可以快速地开发出美观、易用的Web应用程序。下面是一个使用Layui实现二级菜单的示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Layui二级菜单示例</title> <link rel="stylesheet" href="layui/css/layui.css"> </head> <body> <div class="layui-layout layui-layout-admin"> <div class="layui-header"> <div class="layui-logo">Layui二级菜单示例</div> </div> <div class="layui-side layui-bg-black"> <div class="layui-side-scroll"> <ul class="layui-nav layui-nav-tree" lay-filter="test"> <li class="layui-nav-item layui-nav-itemed"> <a href="javascript:;">菜单1</a> <dl class="layui-nav-child"> <dd><a href="">子菜单1</a></dd> <dd><a href="">子菜单2</a></dd> <dd><a href="">子菜单3</a></dd> </dl> </li> <li class="layui-nav-item"> <a href="javascript:;">菜单2</a> <dl class="layui-nav-child"> <dd><a href="">子菜单4</a></dd> <dd><a href="">子菜单5</a></dd> <dd><a href="">子菜单6</a></dd> </dl> </li> </ul> </div> </div> <div class="layui-body"> <div class="layui-tab layui-tab-card"> <ul class="layui-tab-title"> <li class="layui-this">欢迎页</li> </ul> <div class="layui-tab-content"> <div class="layui-tab-item layui-show">欢迎使用Layui二级菜单示例</div> </div> </div> </div> <div class="layui-footer"> © 2021 Layui二级菜单示例 </div> </div> <script src="layui/layui.js"></script> <script> layui.use('element', function(){ var element = layui.element; //监听导航点击 element.on('nav(test)', function(elem){ //获取子菜单的数据 var childData = elem.children('.layui-nav-child'); //如果子菜单存在,则阻止跳转 if (childData.length > 0) { return false; } }); }); </script> </body> </html> ``` 在上面的示例中,使用了Layui的菜单组件和选项卡组件来实现二级菜单效果。菜单组件通过`layui-nav`和`layui-nav-child`来设置菜单项和子菜单项,选项卡组件通过`layui-tab`和`layui-tab-title`来设置选项卡标签和`layui-tab-item`来设置选项卡内容。 同时,在JavaScript代码中,使用了Layui的元素模块来监听导航菜单的点击事件,并通过判断子菜单是否存在来阻止跳转。这样就可以实现二级菜单的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值