2.3 系统管理模块

本文详细介绍了基于Java的系统管理模块,包括部门管理、员工管理、系统菜单管理和权限角色管理。在部门管理中,实现了CRUD操作,使用ajaxForm进行交互。员工管理涉及员工与部门的关联查询和角色分配。系统菜单管理利用分层查询和父子菜单关系。权限管理通过自定义注解实现,角色管理则与用户管理类似,涉及角色分配和权限的增删操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部门管理(CRUD):

  1. 调用业务方法去查询所有的部门信息,添加到model对象中
    public String list(Model model, QueryObject qo){ model.addAttribute(“list”, list); }

    注意:qo是框架自动将其存放到model对象中, 名称默认为该对象类型的首字母小写:queryObject
    可以使用ModelAttribute注解去修改该属性的名称

    在页面上使用后JSTL+EL去获取共享数据

  2. 点击新增按钮去跳转到编辑页面上,将跳转的url绑定到按钮上,然后去获取
    ----->> var url = $(this).data(“url”)

  3. 在编辑页面上获取保存数据的结果信息, 然后给用户一个提示

    使用ajaxForm去获取到结果信息(后台需要将结果以JSON格式的数据响应)
    使用artDialg去给出信息提示

  4. 点击删除超链接执行删除之前给用户一个确定对话框
    当用户确认之后去执行删除操作, 删除成功之后去给用户提示信息

  5. 批量删除:

当用户没有选择要删除的数据的时候,给用户提示
删除之前给用户确认信息,然后再删除
要执行批量删除,我们需要获取到要删除的数据的id
           将要删除的数据的id绑定到当前的复选框上,然后通过JS代码去获取
           可以获取到一个id的数组  ids=[1,2,3]
发送ajax请求去执行批量删除操作
          $.post(url, {ids : ids }, function(){ })
 默认情况下,传递的参数如果是一个数组,那么jQuery就会在参数名称中添加一个[]
 而在我们得需求中,我们是不需要这个[]的,,,可以使用jQuery.ajaxSettings.traditional = true禁用该功能

后台使用一个Long[]去接收该参数,然后去执行对应的sql删除数据
 如果将id拼接到sql中(<foreach>去实现)    collection:如果参数的类型是一个数组(array),如果是一个集合(list)
      如果使用parm注解修改了参数的名称,那么就直接使用			该名称去获取到对应的数据

员工管理:

  1. 列表:需要将所有员工以及其所在部门信息显示出来,所以可以使用内联查询的方式将所有的数据查询数来

  2. 在编辑页面中需要为当前用户选择部门,所以需要将所有的部门信息查询出来显示在下拉框中

  3. 为当前用户分配角色

    1. 在左边下拉框中显示所有的角色信息,供我们来为其分配
    2. 实现角色信息在左右两个下拉框中的移动功能(jquery实现)
    3. 提交表单,将右边下拉框中的角色提交到后台
      提交的参数:
      roleId:1
      roleId:2
      roleId:3
      在后台使用的方法中使用Long[] roleId来接收
      保存关系数据
  4. 在编辑页面中,需要将当前用户拥有的角色显式出来:
    将已经分配的角色从坐下拉框中删除(each/inArray/remove)
    在提交表单之前将右边下拉框中的所有的选项选中,然后提交

系统菜单管理:

  1. 查询:
    在页面中,默认显示一级菜单:
    表中的parent_id为null的数据就是一级菜单
    where parent_id is null

    基于菜单的分层管理的功能实现中,需要使用额外sql的方式去查询当前的菜单所有的父级菜单

  2. 查询下级:
    传递要查询的菜单的父级菜单的id到服务器中去查询即可
    where parent_id = #{parentId}

  3. 翻页操作:
    应该在当前所在菜单中的翻页: 在翻页的使用将父级菜单的id传递到后台

  4. 新增和编辑:
    在编辑页面中,需要显式出当前所在的父级菜单的名称和id
    将父级菜单的id传递到后台去查询父级菜单的信息
    父级菜单的id: null parentName:根目录
    父级菜单的id: 查询出来,将数据共享为parentId和parentName

权限

  1. 自定义注解(保存时期/能贴的位置/参数的传递)
  2. 贴注解
  3. 获取Spring容器对象:ApplicationContext
  4. 获取容器中所有的Controller对象:根据对象类型上所贴的注解
  5. 扫描所有的Controller对象中所有方法的注解
  6. 使用反射
  7. 拼接对应的权限表达式
  8. 获取权限的名称
  9. 执行保存

角色管理(原理跟用户管理相同)

  1. 建立实体类
  2. Mapper接口和xml
  3. 为当前用户分配角色
    1. 在左边下拉框中显示所有的角色信息,供我们来为其分配
    2. 实现权限信息在左右两个下拉框中的移动功能(jquery实现)
    3. 提交表单,将右边下拉框中的角色提交到后台
      提交的参数:
      persissionId:1
      persissionId:2
      persissionId:3
      在后台使用的方法中使用Long[] persissionId来接收
      保存关系数据
    4. 在编辑页面中,需要将当前用户拥有的角色显式出来:
      将已经分配的角色从坐下拉框中删除(each/inArray/remove)
      在提交表单之前将右边下拉框中的所有的选项选中,然后提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值