700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ssm中java实现树状结构_java ssm使用递归写树形结构

ssm中java实现树状结构_java ssm使用递归写树形结构

时间:2022-12-27 06:44:00

相关推荐

ssm中java实现树状结构_java  ssm使用递归写树形结构

实体类:

private String dspId;

private String parentId; //父类id

private String dataName;

private Integer sortingNumber;

private String remarks;

private Date createTime;

private Date updateTime;

private Date deleteTime;

private Integer dataFlag;

private Integer anId;

private Integer isParent;//是否有父类

private List chlidSpecies;

dao层和接口使用mybatis逆向生成,这里就不住解释.

service层:

public List findDataspecies() {

// TODO Auto-generated method stub

//查询所有的结果

DataSpeciesExample example = new DataSpeciesExample();

Criteria criteria = example.createCriteria();

criteria.andDataFlagEqualTo(0);

List dataSpecies = dataspeciesMapper.selectByExample(example);

//创建最后的结果 想最后结果填充数据

List dataSpeciesList= new ArrayList<>();

for (DataSpecies species : dataSpecies) {

if(StringUtils.isBlank(species.getParentId()) ){

//一级菜单没有ParentId

dataSpeciesList.add(species);

}

}

//为一级菜单设计子菜单 使用getchild递归

for (DataSpecies daSpecies : dataSpeciesList) {

daSpecies.setChlidSpecies(getChild(daSpecies.getDspId(),dataSpecies));//这里getchild方法是递归

}

return dataSpeciesList;

}

//递归方法:

public List getChild(String id,List rootDataSpecies){

//创建子菜单

List speciesList = new ArrayList<>();

for (DataSpecies dataSpecies : rootDataSpecies) {

//遍历蓑鲉节点 ,将父类id与传过来的id进行对比

if(StringUtils.isNotBlank(dataSpecies.getParentId())){

if(dataSpecies.getParentId().equals(id)){

speciesList.add(dataSpecies);

}

}

}

//把子菜单循环遍历

for (DataSpecies childSpecies : speciesList) {

if(childSpecies.getIsParent()==1){

childSpecies.setChlidSpecies(getChild(childSpecies.getDspId(),rootDataSpecies));

}

}

if(speciesList.size()==0){

return null;

}

return speciesList;

}

web层直接调用service 的方法就行,这里不做说明.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。