public List<SysPermissionVO> getTreeMenu(List<SysPermissionVO> list,SysPermissionVO sysPermissionVO) { List parent = new ArrayList(); for (SysPermissionVO sysPermission : list) { if("0".equals(sysPermission.getpId()) && sysPermissionVO.getSubsystemId().equals(sysPermission.getSubsystemId())){ sysPermission.setChildren(getChildren(sysPermission.getId(),list,sysPermissionVO)); parent.add(sysPermission); } } return parent; }
list:是你獲取的所有的信息
sysPermissionVO:這里是傳過來的條件,實體里面要有一個children屬性用來存放它的子菜單
if 判斷里面的第一個條件0代表頂層,第二個條件是哪一個系統的(沒有可以忽略)

/**
* 獲取子列表
* @param pId
* @param allList
* @param sysPermissionVO
* @return
*/
public List getChildren(String pId,List<SysPermissionVO> allList,SysPermissionVO sysPermissionVO){
List list = new ArrayList<>();
for (SysPermissionVO sysPermission : allList) {
if(pId.equals(sysPermission.getpId()) && sysPermissionVO.getSubsystemId().equals(sysPermission.getSubsystemId())){
sysPermission.setChildren(getChildren(sysPermission.getId(),list,sysPermissionVO));
list.add(sysPermission);
}
}
return list;
}
pId是頂層菜單的id
這樣的一個簡單的樹形菜單就好了!

