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日

相关文章

  • 以Java代码为例讲解设计模式中的简单工厂模式

    以下是关于“以Java代码为例讲解设计模式中的简单工厂模式”的完整攻略。 什么是简单工厂模式? 简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的最简单方式,就像工厂中生产不同产品一样,将对象的创建委托给具体的工厂类来实现。在简单工厂模式中,我们只需提供一个工厂类的实现,就能够根据所传入的参数去判断创建哪…

    Java 2023年5月23日
    00
  • MyBatis配置文件的写法和简单使用

    MyBatis是一款优秀的持久化框架,它通过XML或注解将Java对象映射到关系数据库中的数据。一般来说,MyBatis的配置文件主要包括以下几个方面:数据源、事务管理、映射文件以及全局配置。 数据源配置 数据源是MyBatis配置文件中最基本的部分,我们需要在配置文件中指定数据源的连接信息。 <configuration> <enviro…

    Java 2023年6月1日
    00
  • SpringBoot中Jackson日期格式化技巧分享

    标题:SpringBoot中Jackson日期格式化技巧分享 介绍 在SpringBoot中,我们经常需要进行数据的序列化和反序列化。而日期格式化是很常见的应用场景,Jackson作为SpringBoot内置的序列化/反序列化工具,提供了多种日期格式化的方法。在本文中,我们将介绍 SpringBoot中 Jackson日期格式化技巧。 基本用法 Spring…

    Java 2023年5月20日
    00
  • SpringBoot详细介绍SPI机制示例

    SpringBoot详细介绍SPI机制示例 在SpringBoot中,我们可以使用SPI机制来扩展框架的功能。本文将详细讲解SpringBoot详细介绍SPI机制示例的完整攻略,并提供两个示例。 1. SPI机制 SPI全称为Service Provider Interface,是Java提供的一种服务发现机制。在SPI机制中,服务提供者提供一种服务接口,而…

    Java 2023年5月15日
    00
  • MySQL筑基篇之增删改查操作详解

    MySQL筑基篇之增删改查操作详解 一、准备工作 在开始进行MySQL的增删改查操作前,需要先做一些准备工作。首先需要安装MySQL数据库,可以通过官方网站下载,并安装在本地机器上。安装完成后,需要登录MySQL,创建数据库并创建数据表。 1.1 登录MySQL 在命令行或终端中输入以下代码,登录MySQL: mysql -u root -p 其中,root…

    Java 2023年5月26日
    00
  • Java多线程实现TCP网络Socket编程(C/S通信)

    Java多线程实现TCP网络Socket编程(C/S通信)攻略 TCP网络Socket编程是C/S(客户端/服务器)通信的常用方式之一。在Java中,可以使用多线程来实现TCP网络Socket编程,并达到高效的并发处理能力。下面就是Java多线程实现TCP网络Socket编程(C/S通信)的攻略,包含详细步骤和示例代码。 1. 创建服务器端Socket 在J…

    Java 2023年5月18日
    00
  • ASP.NET中在不同的子域中共享Session的具体方法

    在ASP.NET中,Session是一种在Web服务器中保存用户数据的机制。在不同的子域中共享Session可以帮助开发者更方便地实现跨站点的数据传递及用户身份验证等功能。本文将介绍ASP.NET中实现在不同的子域中共享Session的具体方法。 方法1:利用Cookie实现子域间Session共享 利用Cookie来实现子域间Session共享的主要思路是…

    Java 2023年6月16日
    00
  • 利用JSP session对象保持住登录状态

    利用JSP的session对象可以实现用户登录状态的保持和管理,下面是完整的攻略: 创建登录页面 创建一个简单的登录页面,包含一个用户名和密码的表单,在提交时向服务器发送POST请求。 示例代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu…

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