java怎么设置二级菜单_java 二级菜单实现

查询数据库所有菜单项

@Override

public ListqueryMenuListByUserCode(String userCode) {

ListmenuList = new ArrayList();

String sql = "select * from fpd.T_INTRA_MENU m where m.status=1 "

+ "and m.code in (select rm.menu_Code from fpd.T_INTRA_ROLE_MENU rm "

+ "where rm.role_code in (select ur.role_code from fpd.T_INTRA_USER_ROLE ur"

+ " where ur.USER_CODE= ? )) order by m.order_no desc";

Object[] paramArr = new Object[]{userCode};

List> queryList = jdbcTemplate.queryForList(sql, paramArr);

if (!CollectionUtils.isEmpty(queryList)) {

for (Mapmap : queryList) {

IntraMenu model = new IntraMenu();

model.setId(((BigDecimal)map.get("ID")).longValue());

model.setCode(map.get("CODE").toString());

if(map.get("P_CODE")!=null){

model.setpCode(map.get("P_CODE").toString());

}

model.setRankLevel(((BigDecimal)map.get("RANK_LEVEL")).intValue());

model.setName(map.get("NAME").toString());

if(map.get("URL")!=null){

model.setURL(map.get("URL").toString());

}

model.setOrderNo(((BigDecimal)map.get("ORDER_NO")).intValue());

menuList.add(model);

}

}

return menuList;

}

树形处理

@RequestMapping(value = "/main")

public ModelAndView loginSuccess(HttpServletRequest request, HttpServletResponse response) {

String loginName = request.getParameter("loginName");

ModelAndView mv = new ModelAndView("intra/login/main");

String name = FPDUtils.getUserCode();

mv.addObject("name", name);

ListmenuList = intraBaseQueryService.queryMenuListByUserCode(loginName);

ListpMenuList = new ArrayList();

MultiMap multiMap = new MultiHashMap();

if(CollectionUtils.isNotEmpty(menuList)){

for(IntraMenu menu:menuList){

if(menu.getRankLevel()==2){

String menuCode="",menuName="";

menuCode = menu.getpCode();//找父节点

//根据父节点编码找相应的名称

IntraMenu pMenu = intraBaseQueryService.queryByMenuCode(menuCode);

if(pMenu!=null){

menuName = pMenu.getName();

multiMap.put(menuCode+"@"+menuName, menu);

}else{

logger.error("父节点编码:"+menuCode+"不存在");

}

}else{

menu.setCode(menu.getCode()+"@"+menu.getName());

pMenuList.add(menu);

}

}

}

SetkeySet =  multiMap.keySet();

Listlist = new ArrayList();

for(IntraMenu menu:pMenuList){

for(Iteratoriterator =keySet.iterator();iterator.hasNext();){

String mapKey = iterator.next();

if(menu.getCode().equals(mapKey)){

IntraTreeMenu intraTreeMenu = new IntraTreeMenu();

Listchildren = (List) multiMap.get(mapKey);

intraTreeMenu.setCode(mapKey.split("@")[0]);

intraTreeMenu.setName(mapKey.split("@")[1]);

intraTreeMenu.setChildren(children);

list.add(intraTreeMenu);

}

}

}

mv.addObject("menuList", list);

return mv;

}

前端处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值