Пример #1
0
  // 根据父ID加载子节点
  private void loadChildrenByPid(MenuItem item, Menu menu, String url, User u) {
    Map<String, String> param = new HashMap<String, String>();

    if (u != null && u.getRid() != null) param.put("rid", u.getRid());
    param.put("pid", menu.getPid());
    // 加载菜单节点
    List<Menu> data = menuService.selectList(param);
    if (data == null || data.size() == 0) {
      return;
    }
    if (item.getChildren() == null) item.setChildren(new ArrayList<MenuItem>());
    // 创建菜单节点
    for (int i = 0; i < data.size(); i++) {
      Menu entry = data.get(i);

      MenuItem addItem = new MenuItem(entry.getName(), null);
      addItem.setId(entry.getId());
      addItem.setPid(entry.getPid());
      addItem.setMenuType(entry);
      String url0 = null;
      if (url != null) {
        addItem.setUrl(url);
        url0 = url;
      } else {
        addItem.setUrl(entry.getUrl());
        url0 = entry.getUrl();
      }
      //
      //	System.out.println("entry.getType()="+entry.getType()+",MenuType.button="+MenuType.button);
      if (entry.getType().equals("button")) {
        addUserResourceMenusButton(url0);
      } else {
        item.getChildren().add(addItem);
      }
    }
    // 根据菜单节点进行递归加载
    for (int i = 0; i < item.getChildren().size(); i++) {
      MenuItem childItem = item.getChildren().get(i);
      if (!childItem.isButton()) {
        Menu itemMenu = new Menu();
        itemMenu.setPid(childItem.getId());
        //				itemMenu.setMenuType(entry);
        loadChildrenByPid(childItem, itemMenu, url, u);
      }
    }
  }