栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Javaweb首页的菜单列表根据不同用户的身份动态加载

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Javaweb首页的菜单列表根据不同用户的身份动态加载

根据不同管理员身份加载并显示当前管理员可以操作的菜单。

先查询出当前管理员的一级菜单,再根据管理员一级菜单的ID查询出当前一级菜单所拥有的的二级菜单。 

1.zhangsan用户业务员身份

2.admin用户,超级管理员身份

3.lisi普通管理员身份

数据库展示

核心代码展示

MenuDAO类

package com.it.dao;

import com.it.entity.Menu1;
import com.it.entity.Menu2;
import com.it.untils.DruidUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.Array;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

//实现菜单的查询
public class MenuDAO {
    public List selectFirstLevelMenusById(String mgrId) throws SQLException {
        List menu1List = new ArrayList<>();
        String str="SELECT c.menu_id menuId,menu_code menuCode,menu_name menuName,menu_order menuOrder,menu_level menuLevel,menu_icon menuIcon FROM tb_mgr_role a " +
                "INNER JOIN tb_role_menu b INNER JOIN tb_menus c ON a.role_id=b.role_id AND b.menu_id=c.menu_id WHERe a.mgr_id=? AND menu_level=1 ORDER BY c.menu_order";
        QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
        menu1List= queryRunner.query(str, new BeanListHandler(Menu1.class), mgrId);
        return menu1List;
    }

    public List selectSecondLevelMenusByIdAndParentCode(String mgrId,String parentCode) throws SQLException {
        List menu2List = new ArrayList<>();
        String sql="SELECT c.menu_id menuId,menu_code menuCode,menu_name menuName,menu_order menuOrder,menu_level menuLevel,parent_menu_code parentMenuCode,menu_url menuUrl FROM tb_mgr_role a " +
                "INNER JOIN tb_role_menu b INNER JOIN tb_menus c ON a.role_id=b.role_id AND b.menu_id=c.menu_id WHERe a.mgr_id=? AND menu_level=2 AND parent_menu_code=? ORDER BY c.menu_order";
        QueryRunner queryRunner = new QueryRunner(DruidUtils.getDataSource());
        menu2List=queryRunner.query(sql,new BeanListHandler(Menu2.class),mgrId,parentCode);
        return menu2List;
    }
}

 MenuService类

package com.it.service;

import com.it.dao.MenuDAO;
import com.it.entity.Menu1;
import com.it.entity.Menu2;

import java.sql.SQLException;
import java.util.List;

public class MenuService {
    public List selectMenuByMgrId(String mgrId) throws SQLException {
        MenuDAO menuDAO = new MenuDAO();
        //根据管理员ID查询该管理员的一级菜单
        List menu1List = menuDAO.selectFirstLevelMenusById(mgrId);
        //查询每一个一级菜单中的二级菜单
        for (int i = 0; i < menu1List.size(); i++) {
            Menu1 menu1 = menu1List.get(i);
            List menu2s = menuDAO.selectSecondLevelMenusByIdAndParentCode(mgrId, menu1.getMenuCode());
            menu1.setChildMenus(menu2s);
        }
        return menu1List;
    }
}

IndexServlet类

package com.it.servlets;

import com.it.entity.Manager;
import com.it.entity.Menu1;
import com.it.service.MenuService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

@WebServlet("/IndexServlet")
public class IndexServlet extends HttpServlet {

    MenuService menuService=new MenuService();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        Manager mgr = (Manager) session.getAttribute("mgr");
        String mgrId = mgr.getMgrId();
        try {
            List menu1List = menuService.selectMenuByMgrId(mgrId);
            req.setAttribute("menuList",menu1List);
            req.getRequestDispatcher("index.jsp").forward(req,resp);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

首先在项目添加jstl的jar包,JSP页面导入该jar包内容

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

          
          
  • ${menu1.menuName}
    • ${menu2.menuName}
  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/933664.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号