我想问如何使用递归函数从数据库生成菜单模型。我已经上了这门课,但它不起作用。请帮助我,我已经找到并尝试了一周。谢谢
public class MenuDAOImpl extends ManagerBase<MenuMaster> implements MenuDAO {
private List<MenuMaster> list;
private List<MenuData> datas;
@Override
public MenuModel getMenu() {
MenuModel model = new DefaultMenuModel();
String[] orders = new String[]{"id"};
try {
list = getBySQLQuery("PARENT_MENU_ID=0", orders, 1000);
for (MenuMaster menuMaster : list) {
menuChild(menuMaster);
}
} catch (Exception e) {
}
return model;
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
private List<MenuData> menuChild(MenuMaster master) {
List<MenuData> listChild = new ArrayList<MenuData>();
String[] orders = new String[]{"id"};
try {
MenuData data = new MenuData();
data.mm = master;
data.mms = getBySQLQuery("PARENT_MENU_ID=" + master.getParentMenuId(), orders, 1000);
listChild.add(data);
} catch (Exception e) {
}
return listChild;
}
public class MenuData {
private MenuMaster mm;
private List<MenuMaster> mms;
public MenuData() {
}
public MenuMaster getMm() {
return mm;
}
public void setMm(MenuMaster mm) {
this.mm = mm;
}
public List<MenuMaster> getMms() {
return mms;
}
public void setMms(List<MenuMaster> mms) {
this.mms = mms;
}
}
}
这是我的数据库表(抱歉我不能上传图片)
身份证 | 菜单名称 | DISPLAY_NAME | 网址 |PARENT_MENU_ID |
1 | 员工 | 员工 | /employee.xhtml | 0 |
2 | 员工菜单| 员工 | /employee.xhtml | 1 |
3 | 实用程序 | 实用程序 | | 0 |
7 | 阿斯达夫 | 阿斯达夫 | | 6 |
6 | 实用菜单 | 测试 | | 3 |
5 | 实用数据 | 管理员配置 | 阿斯达夫 | 3 |
4 | 菜单 | 菜单编辑器 | /utility/menu.xhtml | 3 |