tree数据格式封装处理

1,先创建关于tree的属性bean
public class TreeNode {

	private String id;
	
	private String text;
	
	private String url;
	
	private String state;//value closed,open
	
	private boolean checked; //
	
	private String parentId;
	
	private String iconCls; //图标
	
	private Map attributes = new HashMap();
	
	private List  children;
	

	public String getId() { 
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public  String getParentId() {
		return parentId;
	}

	public void setParentId( String parentId) {
		this.parentId = parentId;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public boolean isChecked() {
		return checked;
	}

	public void setChecked(boolean checked) {
		this.checked = checked;
	}

	public List getChildren() {
		return children;
	}

	public void setChildren(List children) {
		this.children = children;
	}

	public Map getAttributes() {
		return attributes;
	}

	public void setAttributes(Map attributes) {
		this.attributes = attributes;
	}

	/**
	 * @return the iconCls
	 */
	public String getIconCls() {
		return iconCls;
	}

	/**
	 * @param iconCls the iconCls to set
	 */
	public void setIconCls(String iconCls) {
		this.iconCls = iconCls;
	}
	
}
2,然后创建一个tree的工具类
public class TreeUtil {

	/**
	 * 菜单封装tree格式
	 * @param sysMenus
	 * @param string
	 * @return
	 */
	public static List MenuToNode(List sysMenus,String string) { //先封装父节点
		List newTrees = new ArrayList();
		TreeNode tn = null;
		if(sysMenus.size()!=0){
			for(int i = 0;i<sysMenus.size();i++){
				if(StringUtils.isEmpty(sysMenus.get(i).getParent_menu_id())){ //父节点
					tn = new TreeNode();
					tn.setId(sysMenus.get(i).getId());
					tn.setText(sysMenus.get(i).getMenu_name());
					tn.setChildren(getChildren(sysMenus,sysMenus.get(i).getId())); //子节点数据
					newTrees.add(tn);
				}
			}
		}
		return newTrees;
	}
	
	/**
	 * 无限递归菜单tree
	 * @param sysMenus
	 * @param id
	 * @return
	 */
	private static List getChildren(List sysMenus, String id) { //无限递归封装子节点
		List newTrees = new ArrayList();
		TreeNode tn = null;
		for(int i = 0;i<sysMenus.size();i++){
			if(!StringUtils.isEmpty(sysMenus.get(i).getParent_menu_id())){
				if(id.equals(sysMenus.get(i).getParent_menu_id())){
					tn = new TreeNode();
					//tn.setIconCls("icon-edit");
					tn.setId(sysMenus.get(i).getId());
					tn.setText(sysMenus.get(i).getMenu_name());
					tn.setUrl(sysMenus.get(i).getMenu_url());
					tn.setChildren(getChildren(sysMenus,sysMenus.get(i).getId()));
					newTrees.add(tn);
				}
			}
		}
		return newTrees;
	}

}
3,关于SysMenu对象则是需要变成tree的原数据集合,数据库表则是按照tree级通用方式来创建的单表;
MenuToNode(List sysMenus,String string)方法d中的string参数暂时无用;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ruchiruzui2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值