EasyUi Tree 数据 对象 递归

先贴代码


public class NewsCatalogVO {
	
	private String text;
	private String id;
	private List<NewsCatalogVO> children;
	
	
	public String getText() {
		return text;
	}
	public void setText(String text) {
		this.text = text;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public List<NewsCatalogVO> getChildren() {
		return children;
	}
	public void setChildren(List<NewsCatalogVO> children) {
		this.children = children;
	}
	
	
}



/**
 * 数据访问层
 */
public class NewsCatalogDaoImpl implements NewsCatalogDao {

	private PersistTemplate template;
	
	@Override
	public List<NewsCatalogVO> getAllDataById(String id) {
		
		List<NewsCatalogVO> returnDatas = new ArrayList<NewsCatalogVO>();
		
		List<NewsCatalog> datas = template.find("from NewsCatalog t where t.catalogId<>'"+id+"'");
		List<NewsCatalog>  nc = template.find("from NewsCatalog t where t.catalogId='"+id+"'");
		if(datas.size()>0&&nc.size()>0){
			
			returnDatas.add(initNewsCatalogVO(datas,nc.get(0)));
		}
		return returnDatas;
	}
	/**
	 * 递归数据  转成 符合 easyui tree 格式数据对象
	 * @param datasParam
	 * @param nc
	 * @return
	 */
	public  NewsCatalogVO initNewsCatalogVO(List<NewsCatalog> datasParam,NewsCatalog nc){
		
		List<NewsCatalogVO> chileren = new ArrayList<NewsCatalogVO>();
		
		for(NewsCatalog model :datasParam){
			if(model.getCatalogParentId()!=null){
				if(model.getCatalogParentId().equals(nc.getCatalogId())){
					chileren.add(initNewsCatalogVO(datasParam,model));
				}
			}
		}
		NewsCatalogVO ncvo = new NewsCatalogVO();
		ncvo.setId(nc.getCatalogId());
		ncvo.setText(nc.getCatalogName());
		ncvo.setChildren(chileren);
		return ncvo;
	}
	public PersistTemplate getTemplate() {
		return template;
	}
	public void setTemplate(PersistTemplate template) {
		this.template = template;
	}

	
}
写下感受:

1.写递归的时候 先完成 第一步(不要去想其他步骤 ),第一步的意思就是先完成一个对象基本属性(不包含数组集合的属性)【想这种树状的数据肯定是包含集合 而 对象本身又是组成集合。其实也可以这样去想:找到最后一个没有子节点的对象(即:没有集合的对象),这个对象便是最根上的,那么他的上一个对象的集合中肯定要包含它,那么就要把他给返回 即 return ,返回之后  要把它放到 集合中.....】这样呢 代码就跟着感觉一点一点出来了。。。。。。。。。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值