遞迴獲取選單樹返回json
阿新 • • 發佈:2019-02-02
/** * 遞迴獲取json tree * @param parentId 選單的父id * @param rootId 根節點id ,遞迴入口 * @param allMenus 所有的選單集合 * @return */ public List<Menu> getMenuNodes(String parentId, String rootId, List<Menu> allMenus) { List<Menu> menus = new ArrayList<>(); for (Menu menu : allMenus) { if (rootId.equals(menu.getStr(parentId) == null ? "" : menu.getStr(parentId))) { List<Menu> childrenMenu = getMenuNodes(parentId, menu.getStr("F_ID"), allMenus); if (childrenMenu.size() > 0) { menu.put("children", childrenMenu); } menus.add(menu); } } return menus; }
/**
* jfinal帶集合資料返回html頁面,採用freemarker渲染
*/
public void show() {
List<Menu> MenuNodes = Menu.dao.find("select F_ID,F_NAME,F_PARENTID,F_URL,F_ICON from T_SYS_MENU order by F_ORDER");
List<Menu> nodes = getMenuNodes("F_PARENTID", "", MenuNodes);
setAttr("nodes", nodes);
//renderJson();
this.renderFreeMarker("menu2.html");
}