SSH框架网上商城项目第4战之EasyUI菜单的实现

SSH框架网上商城项目第4战之EasyUI菜单的实现攻略

1. 前置条件

  • 已经配置好SSH框架,并成功部署网上商城项目。
  • 已经引入EasyUI库文件。

2. 实现步骤

2.1 HTML页面中添加菜单代码

在HTML页面的菜单区域添加以下代码:

<div id="menu" class="easyui-tree" data-options="url:'menu.json',method:'get',animate:true"></div>

其中,id属性设置为"menu",表示菜单的容器;class属性设置为"easyui-tree",表示这是EasyUI树形菜单;data-options指定了菜单的数据来源menu.json,并指定了请求方式method为GET。

2.2 准备菜单数据

在项目目录中新建一个名为menu.json的文件,用于存储菜单数据。示例代码如下:

[{
    "id": 1,
    "text": "商品管理",
    "iconCls": "icon-products",
    "children": [{
        "id": 11,
        "text": "添加商品",
        "attributes": {
            "url": "products_add.html"
        }
    }, {
        "id": 12,
        "text": "商品列表",
        "attributes": {
            "url": "products_list.html"
        }
    }]
}, {
    "id": 2,
    "text": "订单管理",
    "iconCls": "icon-orders",
    "children": [{
        "id": 21,
        "text": "待发货订单",
        "attributes": {
            "url": "orders_wait.html"
        }
    }, {
        "id": 22,
        "text": "已发货订单",
        "attributes": {
            "url": "orders_sent.html"
        }
    }]
}]

以上示例代码中,定义了两个主菜单,每个主菜单下分别有两个子菜单,每个子菜单都指定了相应页面的URL。

2.3 JS代码实现菜单加载

在页面中添加以下JS代码,用于实现菜单的加载和点击事件。

$(function(){
    $('#menu').tree({
        onClick: function(node){
            if (node.attributes.url){
                if ($('#tt').tabs('exists',node.text)){
                    $('#tt').tabs('select', node.text);
                } else {
                    var content = '<iframe scrolling="auto" frameborder="0" src="'+node.attributes.url+'" style="width:100%;height:100%;"></iframe>';
                    $('#tt').tabs('add',{
                        title:node.text,
                        content:content,
                        closable:true
                    });
                }
            }
        }
    });
});

以上代码中,首先使用jQuery选择器获取菜单的容器$('#menu'),然后调用EasyUI的tree()方法实例化树形菜单。onClick方法指定了菜单的单击事件。

onClick方法中,判断当前点击的节点(node)是否有url属性,如果有,就打开以该属性指定的URL为地址的标签页,如果已经存在该标签页,则激活该标签页。

3. 示例说明

以下是两个实现树形菜单的示例:

示例1

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>示例1</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/jqueryui/1.12.1/themes/base/jquery-ui.min.css">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/jqueryui/1.12.1/themes/base/theme.min.css">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/easyui/1.9.22/themes/bootstrap/easyui.css">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/easyui/1.9.22/themes/icon.css">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/easyui/1.9.22/jquery.easyui.min.js"></script>
</head>
<body>
    <div id="menu" class="easyui-tree" data-options="url:'menu.json',method:'get',animate:true"></div>
    <div id="tt" class="easyui-tabs" style="height:100%">
        <div title="主页" data-options="closable:false,href:'home.html'"></div>
    </div>
    <script>
        $(function(){
            $('#menu').tree({
                onClick: function(node){
                    if (node.attributes.url){
                        if ($('#tt').tabs('exists',node.text)){
                            $('#tt').tabs('select', node.text);
                        } else {
                            var content = '<iframe scrolling="auto" frameborder="0" src="'+node.attributes.url+'" style="width:100%;height:100%;"></iframe>';
                            $('#tt').tabs('add',{
                                title:node.text,
                                content:content,
                                closable:true
                            });
                        }
                    }
                }
            });
        });
    </script>
</body>
</html>

上面的示例中,引入了jQuery、jQuery UI和EasyUI库文件,并创建一个空的标签页,用于放置到后续点击菜单节点后打开的标签页中。

示例2

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>示例2</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/jqueryui/1.12.1/themes/base/jquery-ui.min.css">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/jqueryui/1.12.1/themes/base/theme.min.css">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/easyui/1.9.22/themes/bootstrap/easyui.css">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/easyui/1.9.22/themes/icon.css">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/easyui/1.9.22/jquery.easyui.min.js"></script>
</head>
<body>
    <div id="menu" class="easyui-tree" data-options="url:'menu.json',method:'get',animate:true"></div>
    <script>
        $(function(){
            $('#menu').tree({
                onClick: function(node){
                    if (node.attributes.url){
                        location.href = node.attributes.url;
                    }
                }
            });
        });
    </script>
</body>
</html>

上面的示例中,与第一个示例类似,但这里不使用选项卡,而是直接通过location.href属性跳转到指定的页面。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SSH框架网上商城项目第4战之EasyUI菜单的实现 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • SpringMVC结构简介及常用注解汇总

    以下是关于“SpringMVC结构简介及常用注解汇总”的完整攻略,其中包含两个示例。 SpringMVC结构简介 SpringMVC是一个基于MVC架构的Web框架,它提供了一种灵活、高效的方式来开发Web应用程序。在SpringMVC中,请求的处理流程可以分为以下几个步: 客户端发送请求到DispatcherServlet。 DispatcherServl…

    Java 2023年5月16日
    00
  • 如何通过eclipse web项目导入itellij idea并启动

    将Eclipse Web项目导入IntelliJ IDEA并启动,可参考以下步骤: 1. 导入Eclipse Web项目 在IntelliJ IDEA中,选择“File” -> “New” -> “Project from Existing Sources”。 在弹出的“Import Project”对话框中,选择Eclipse项目所在的文件夹,…

    Java 2023年6月15日
    00
  • UniApp开发H5接入微信登录的全过程

    UniApp是一个基于Vue.js的跨平台开发框架,可以使用一份代码,在多个平台上运行,包括H5。微信登录是一种比较常见的第三方登录方式,很多应用都会集成,下面详细讲解一下使用UniApp开发H5接入微信登录的全过程。 1. 注册开发者账号 首先,需要在微信开放平台注册开发者账号,然后创建一个应用,获取到应用的AppID和AppSecret。 2. 配置应用…

    Java 2023年5月23日
    00
  • 使用SpringMVC在redirect重定向的时候携带参数的问题

    使用SpringMVC在redirect重定向的时候携带参数是一件常见的需求,本文将为您详细讲解如何解决这个问题。 解决方案 在SpringMVC中,可以使用RedirectAttributes实现在重定向时携带参数,具体的步骤如下: 在Controller方法中添加一个RedirectAttributes参数: java @RequestMapping(v…

    Java 2023年6月15日
    00
  • 在windows下揪出java程序占用cpu很高的线程并完美解决

    以下是针对“在 Windows 下揪出 Java 程序占用 CPU 很高的线程并完美解决”的完整攻略: 1. 使用 Java 可视化工具揪出占用 CPU 较高的线程 步骤1:下载 VisualVM VisualVM 是一款 Java 虚拟机监控和性能分析工具,可以在 Windows 等多个平台上使用,具有良好的界面和体验。可以到以下网址下载 VisualVM…

    Java 2023年5月19日
    00
  • Java 判断两个字符串是否由相同的字符组成的实例

    下面是“Java 判断两个字符串是否由相同的字符组成的实例”的完整攻略。 鉴于这个问题,我们需要一个逐字比较的算法来解决。首先,需要确保两个字符串的长度相等,然后对它们进行排序,最后逐一比较它们是否相等。下面是具体步骤: 确保两个字符串的长度相等。可以使用 length() 方法来获取两个字符串的长度,并使用 if 语句确定它们是否相等,如果不相等,马上返回…

    Java 2023年5月27日
    00
  • 详解Springboot Oauth2 Server搭建Oauth2认证服务

    详解SpringBoot Oauth2 Server搭建Oauth2认证服务 1. 概述 OAuth,全称是“开放授权”,是一种用于授权的开放标准。在Web应用中,OAuth用于授权用户第三方应用访问资源的操作,比如在不需要输入用户名和密码的情况下授权第三方应用获取用户的个人信息。OAuth提供了一个安全的、开放的方式实现对用户的授权。 SpringBoot…

    Java 2023年5月20日
    00
  • Java 数据库连接池Druid 的介绍

    下面就为您详细讲解Java数据库连接池Druid的介绍。 一、概述 Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP等DB池的优点,同时加入了日志监控功能,利用Druid能够大大提高数据库访问的性能,是目前使用比较广泛的数据库连接池之一。 二、特点 Druid具有以下几个特点: 性能优秀。Druid经过多种优化,比如使用简单的S…

    Java 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部