Layui关于如何添加连接数据库的选项卡(三)

简介: Layui关于如何添加连接数据库的选项卡(三)

前言:我们在理解上篇的基础上,学习添加选项卡就会变得so easy,接下来我们继续实现我们的点击左侧实现添加选项卡功能。

1.实现效果:

2.思路:

      1.我们给二级的菜单设置点击事件打开对应的选项卡

      2.将内容进行改变成对应点击的内容(data中传递到方法中)

       注: 三个属性      1.title选项卡的名称对应左侧点击名称    

                                    2.content选项卡的内容        

                                    3.id选项卡的对应左侧点击id

      element这个方法是没有的,要给element扩大权限

      3.限定只能点击一次()

      4.点击左侧,选项卡能够对应的切换

      5.点击选项卡切换对应的内容

3.PermissionDao类(增加属性)

public List<TreeVo<Permission>> menu(Permission Permission ) throws Exception {
    List<TreeVo<Permission>> treeov = new ArrayList<TreeVo<Permission>>();
    //数据库中的数据
    List<com.zking.entity.Permission> list = this.list(Permission, null);
    //循环外层
    for (Permission p : list) {
      TreeVo<Permission> treeVo = new TreeVo<>();//实例TreeVo
      treeVo.setId(p.getId()+"");//将p中的id添加到TreeVo中
      treeVo.setText(p.getName());//文本
      treeVo.setParentId(p.getPid()+"");
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("solf", p);//(solf指的是Permission中的所有属性值)
      treeVo.setAttributes(map);//Attributes节点属性,这时候treeVo就有了所有属性
      treeov.add(treeVo);
    }
    //调用工具类build
    return BuildTree.buildList(treeov, "0");
  }

4.主页:jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@include file="/common/public.jsp"%>
<!DOCTYPE>
<html>
<head>
<script type="text/javascript"></script>
<!-- 选项卡的css -->
<link rel="stylesheet" href="static/css/main.css" media="all">
<!-- 选项卡的js -->
<script type="text/javascript" src="static/js/main.js"></script>
</head>
  <style type="text/css">
.he{
  background-color: red;
}
body {
  background-image: url("static/images/R-C%20(2).jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed; /*关键*/
  background-position: center;
}
  </style>
<body>
  <div class="layui-layout layui-layout-admin">
    <div class="layui-header">
      <div class="layui-logo layui-hide-xs layui-bg-black">layout
        demo</div>
      <!-- 头部区域(可配合layui 已有的水平导航) -->
      <ul class="layui-nav layui-layout-left">
        <!-- 移动端显示 -->
        <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm"
          lay-header-event="menuLeft"><i
          class="layui-icon layui-icon-spread-left"></i></li>
        <!-- Top导航栏 -->
        <li class="layui-nav-item layui-hide-xs"><a href="">nav 1</a></li>
        <li class="layui-nav-item layui-hide-xs"><a href="">nav 2</a></li>
        <li class="layui-nav-item layui-hide-xs"><a href="">nav 3</a></li>
        <li class="layui-nav-item"><a href="javascript:;">nav
            groups</a>
          <dl class="layui-nav-child">
            <dd>
              <a href="">menu 11</a>
            </dd>
            <dd>
              <a href="">menu 22</a>
            </dd>
            <dd>
              <a href="">menu 33</a>
            </dd>
          </dl></li>
      </ul>
      <!-- 个人头像及账号操作 -->
      <ul class="layui-nav layui-layout-right">
        <li class="layui-nav-item layui-hide layui-show-md-inline-block">
          <a href="javascript:;"> <img
            src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg"
            class="layui-nav-img"> tester
        </a>
          <dl class="layui-nav-child">
            <dd>
              <a href="">Your Profile</a>
            </dd>
            <dd>
              <a href="">Settings</a>
            </dd>
            <dd>
              <a href="login.jsp">Sign out</a>
            </dd>
          </dl>
        </li>
        <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
          <a href="javascript:;"> <i
            class="layui-icon layui-icon-more-vertical"></i>
        </a>
        </li>
      </ul>
    </div>
    <div class="layui-side layui-bg-black">
      <div class="layui-side-scroll">
        <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
        <ul id="menu" class="layui-nav layui-nav-tree" lay-filter="menu"> 
              </ul>
      </div>
    </div>
    <div class="layui-body">
      <!-- 内容主体区域 -->
      <div style="padding: 15px;">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 50px;">
</fieldset>
 <!-- 这里的选项卡名称是demo -->
<div class="layui-tab" lay-filter="demo" lay-allowclose="true">
  <ul class="layui-tab-title">
    <li class="layui-this" lay-id="11" color:red>网站设置</li>
    <li lay-id="22">用户管理</li>
    <li lay-id="33">权限分配</li>
    <li lay-id="44">商品管理</li>
    <li lay-id="55">订单管理</li>
        <li class="he" lay-id="55">订单管理</li>
  </ul>
  <div class="layui-tab-content">
    <div class="layui-tab-item layui-show">内容1</div>
    <div class="layui-tab-item">内容2</div>
    <div class="layui-tab-item">内容3</div>
    <div class="layui-tab-item">内容4</div>
    <div class="layui-tab-item">内容5</div>
  </div>
</div>
</div>
    </div>
    <div class="layui-footer">
      <!-- 底部固定区域 -->
      底部固定区域
    </div>
  </div>
</body>
</html>

5.简洁风格修改选项卡的样式:

思路:其实十分的简单,就是我们利用到JavaScript中类选择器的原理。

分析:在我们的jsp页面中的嵌套关系1包含了2包含了3。当我们点击了左侧的菜单,选项卡就会新增一个li标签,对应的css属性就会赋上去:

6.关于style中的属性设置使用

/*tab 选项卡*/
/* 去掉下边长灰色线 */
.layui-tab-title {
  border: none;
}
/* 给tab选项加背景颜色,5个像素的圆角,每个选项隔开,字体为白式 */
.layui-tab>.layui-tab-title .layui-this {
  background-color: #5cb85c;
  border-radius: 5px;
  margin-left: 10px;
  color: white;
}
/* 去选中选项的下边线 */
.layui-tab>.layui-tab-title .layui-this:after {
  border: none;
}
/* 选中后,背景颜色改变,5个像素的圆角 */
.layui-tab>.layui-tab-title .layui-this{
  background-color: #f0ad4e;
  border-radius: 50px;
}
/* 选中后,字体为白色 */
.layui-tab>.layui-tab-title .layui-this{
  color: white;
}
  1. 修改颜色值:在上述代码中,可以根据需求修改 background-colorcolor 的值来改变选中时的背景颜色和文字颜色。可以使用颜色名称、十六进制值或 RGB 值等形式来设置颜色。

这里我是使用的嵌入的css,此外还可以在jsp页面设置:

这样我们简单的选项卡样式就做好了!

7.关于Element 组件介绍:

  1. 元素选择器:Layui 使用 $ 函数作为元素选择器,类似于 jQuery 的使用方式。例如,$('#id') 通过 ID 选择元素,$('.class') 通过类选择元素等。
  2. 元素操作:Layui 提供了一些常用的操作方法,如 show()hide() 用于显示和隐藏元素,addClass()removeClass() 用于添加和移除类,attr()removeAttr() 用于设置和移除属性等。
  3. 数据表格:通过 table.render() 方法可以渲染数据表格,并提供了一系列的配置选项,如表头、数据内容、分页等。可以使用 <table> 标签来定义表格的结构。
  4. 表单验证:Layui 提供了表单验证的方法,可以通过 form.verify() 来定义表单的验证规则,并通过 form.on() 方法监听表单提交事件,实现表单的验证和提交操作。
  5. 弹窗:通过 layer.open() 方法可以弹出一个窗口,可以设定窗口的标题、内容、按钮等属性。还可以通过 layer.alert()layer.confirm() 等方法来弹出不同类型的对话框。
  6. 标签页:Layui 提供了简单的标签页组件,可以使用 element.tabAdd() 方法添加标签页,element.tabChange() 方法切换标签页。需要在 HTML 页面中定义相应的标签结构。
  7. 分页:通过 laypage.render() 方法可以渲染分页器,并设置参数和事件回调函数。可以通过 layui.laypage 调用相关的分页操作。
  8. 模块化加载:Layui 使用模块化机制加载组件,通过 layui.use() 方法来加载和使用指定的模块。每个模块都有相应的功能,可以通过引入和使用模块来扩展 Layui 的功能。

以上是 Layui 组件库中的一些常用方法和组件,还有其他更多的功能和组件可供使用。

我们可以参考layui的官网在线示例 - Layui

8. Layui 中的页面进行更新和重新渲染介绍

在 Layui 中,如果需要对页面进行更新和重新渲染,可以使用 Layui 提供的一些方法和机制。以下是一些常用的更新渲染方法:

  1. 更新表格:如果需要更新数据表格,可以使用 table.reload() 方法。该方法可以重新加载表格数据、刷新表格样式,并支持一些参数来设置表格的重新加载行为,如重新读取接口数据、重载排序等。
// 重新加载表格数据
table.reload('tableId', {
  where: { // 设置参数
    key: value
  }
});

        2.更新表单:Layui 提供了 form.val() 方法来动态更新表单的值。可以通过该方法设置表单元素的值,包括输入框、下拉选择框、单选框等。

// 更新表单元素的值
form.val('formId', {
  field1: value1,
  field2: value2
});

       3.更新分页器:在使用 Layui 的分页组件时,可以使用 laypage.render() 方法来重新渲染分页器。可以通过该方法重新设置分页的参数和事件回调函数,从而更新分页器的显示和行为。

// 重新渲染分页器
laypage.render({
  elem: 'pageId',
  count: total,
  curr: current,
  jump: function(obj, first) {
    if (!first) {
      // 分页切换事件回调
      // 根据 obj.curr 获取当前页码进行数据加载或其他操作
    }
  }
});

      4. 刷新界面:如果需要刷新页面内容,可以使用 location.reload() 方法来进行页面的重新加载和刷新。

// 刷新页面
location.reload();

以上是一些常用的更新渲染方法,在实际的开发中,可以根据具体的需求和场景选择合适的方法来进行更新和重新渲染操作。需要注意的是,在使用 Layui 的组件时,可能需要根据具体的组件和使用方式查阅相应的文档来了解更详细的更新和渲染方法。

9.关于项目重构:

9.1项目重构是什么?

项目重构是指对现有项目进行结构和代码的重新设计和改造。

9.2项目重构好处?

以提高项目的可维护性、可扩展性和可读性。重构旨在改善软件的内部质量,而不改变其外部行为。

 

10.总结:

  1. Layui 的选项卡组件使用 <ul><li> 标签结构来定义选项卡的标题,使用 <div> 标签结构来定义选项卡的内容。
  2. 使用 element.tabAdd() 方法来添加选项卡,通过指定标题和内容的方式来创建新的选项卡。
// 添加选项卡
element.tabAdd('tabId', {
  title: 'Tab Title',
  content: 'Tab Content'
});

       3.使用 element.tabChange() 方法来切换选项卡,通过指定选项卡的索引或ID来切换到对应的选项卡。

// 切换选项卡
element.tabChange('tabId', 'tabIndex'); // 使用索引切换
element.tabChange('tabId', 'tabId'); // 使用ID切换

好了,我们今天就分享到这里,希望这篇博文能对你的学习,工作有好的帮助!!!

目录
相关文章
|
1月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
80 13
|
1月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
587 11
|
7月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
7月前
|
数据库连接 应用服务中间件 PHP
|
6月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
3月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
326 0
|
6月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
1265 28
|
6月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
344 14