部门树不显示层级结构,前端后端都没有错误,急急急!!!
来源:7-6 部门列表树型结构界面开发

慕斯卡5022575
2021-01-16
找不到错误了,把源码的dept.jsp拷贝进来也是不显示层级关系!!!
2021-01-16 18:09:25.648 [http-bio-8080-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'spring’
2021-01-16 18:09:27.014 [http-bio-8080-exec-1] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 5.2.4.Final
2021-01-16 18:09:28.769 [http-bio-8080-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 3120 ms
2021-01-16 18:09:29.331 [http-bio-8080-exec-1] INFO com.mmall.common.HttpInterceptor - request start. url:/sys/dept/dept.page,params:null
2021-01-16 18:09:31.283 [http-bio-8080-exec-1] INFO com.mmall.common.HttpInterceptor - request complete. url:/sys/dept/dept.page,params:1952
2021-01-16 18:09:31.811 [http-bio-8080-exec-1] INFO com.mmall.common.HttpInterceptor - request start. url:/sys/dept/tree.json,params:null
2021-01-16 18:09:32.424 [http-bio-8080-exec-1] INFO com.mmall.common.HttpInterceptor - request complete. url:/sys/dept/tree.json,params:613
3回答
-
Jimin
2021-01-17
你好,字段名称有做调整吗?这时可以跑一下课程里的源代码,看看源代码是否正常展示,这样可以区分是代码问题还是环境问题,缩小问题范围。如果后端接口返回正常,那么可能是前端字段和后端不匹配,如果后端接口返回有问题,查你贴的这些的细节就行了
012021-01-17 -
慕斯卡5022575
提问者
2021-01-16
//把部门列表转换成树形结构方法,不停的用递归方法把树形结构组装起来
public List<DeptLevelDto> deptListToTree(List<DeptLevelDto> deptLevelList){
if(CollectionUtils.isEmpty(deptLevelList)){
return Lists.newArrayList();
}
//level -->[dept1,dept2....]
//基本的数据结构初始化
Multimap<String,DeptLevelDto> levelDeptMap = ArrayListMultimap.create();
List<DeptLevelDto> rootList = Lists.newArrayList();
for(DeptLevelDto dto : deptLevelList){
levelDeptMap.put(dto.getLevel(),dto);
if(LevelUtil.ROOT.equals(dto.getLevel())){
rootList.add(dto);
}
}
//同一级部门排序,按照seq从小到大排序
Collections.sort(rootList, new Comparator<DeptLevelDto>() {
@Override
public int compare(DeptLevelDto o1, DeptLevelDto o2) {
return o1.getSeq() - o2.getSeq();
}
});
//递归生成树
transformDeptTree(rootList,LevelUtil.ROOT,levelDeptMap);
return rootList;
}
//把当前排好序的rootList下面的部门进行递归排序
public void transformDeptTree(List<DeptLevelDto> deptLevelList,String level,Multimap<String,DeptLevelDto> levelDeptMap){
//递归实现
for(int i = 0 ; i < deptLevelList.size(); i++){
//遍历该层的每个元素
DeptLevelDto deptLevelDto = deptLevelList.get(i);
//处理当前层级的数据
String nextLevel = LevelUtil.calculateLevel(level,deptLevelDto.getId());
//处理下一层
List<DeptLevelDto> tempDeptList = (List<DeptLevelDto>)levelDeptMap.get(nextLevel);
if(CollectionUtils.isEmpty(tempDeptList)){
//通过seq进行排序
Collections.sort(tempDeptList,deptSeqComparator);
//设置下一层部门
deptLevelDto.setDeptList(tempDeptList);
//进入到下一层处理
transformDeptTree(tempDeptList,nextLevel,levelDeptMap);
}
}
}
public Comparator<DeptLevelDto> deptSeqComparator = new Comparator<DeptLevelDto>() {
@Override
public int compare(DeptLevelDto o1, DeptLevelDto o2) {
return o1.getSeq() - o2.getSeq();
}
};从数据库取到所有数据后,部门列表转换树形结构的时候,就剩两个顶级部门了,老师看下我这代码有什么问题吗?
00 -
慕斯卡5022575
提问者
2021-01-16
debug跑,数据库的数据都正常取到了,返回到DeptLevelDto后就剩顶级部门了,之后页面显示也就两个部门,没有层级关系。对照一遍部门树代码也没发现问题,程序也没跑出错误。。。。
00
相似问题