java递归实现ztree树结构数据展示

15 篇文章 0 订阅
//获得zTree结构的数据(测试AuthInfo)
		@RequestMapping("/getAuthInfoTree.action")
		public void getAuthInfoTree(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
			System.out.println("===========getAuthInfoTree============");
			//读取树型结构数据
			List<AuthInfo> list=new ArrayList<AuthInfo>();
			//1.查询pid为0的信息(顶级节点)(找出规律使用递归)
			//调用递归查询数据
			AuthInfo authInfo=new AuthInfo();
			authInfo.setAuthId(0);
			selectChildrenAuthInfo(authInfo);
			//最终结果(在AuthInfo中添加children集合)
			List<AuthInfo> authlist=authInfo.getChildren();
			for(AuthInfo au:authlist) {
				System.out.println("au="+au);
			}
			//list.add(authInfoList);
			//将list集合转为JSONArray
			JSONArray jsonArray=JSONArray.fromObject(authlist);
			request.setAttribute("testTree", jsonArray);
			request.getRequestDispatcher("pages/testTree.jsp").forward(request, response);
			
		}
		//递归查询方法
		/**
		 * 递归自己调用自己,一定要有跳出逻辑
		 * 方法调用时,参数之间有规律
		 * @param parent
		 */
		private void selectChildrenAuthInfo(AuthInfo parent) {
			List<AuthInfo>	childrenAuthInfoList=authInfoService.selectAuthInfoone(parent.getAuthId());
			//集合为空的时候跳出循环
			for(AuthInfo authInfo:childrenAuthInfoList) {
				selectChildrenAuthInfo(authInfo);
			}
			parent.setChildren(childrenAuthInfoList);
		}
public class AuthInfo {
	/**
	 * 为了获得zTree数据做如下操作
	 * 
	 */
	//树id
    private Integer authId;
	//树pid
    private Integer parentId;
    //树name
    private String authName;
    
    private String authDesc;

    private Integer authGrade;

    private String authType;
    //树url
    private String authUrl;

    private String authCode;

    private Integer authOrder;

    private String authState;

    private Integer createBy;

    private Date createTime;

    private Integer updateBy;

    private Date updateTime;
    //树open
    private boolean open;
    //树children
    private List<AuthInfo> children=new ArrayList<AuthInfo>();  
    //为了关联二级权限
    private List<AuthInfo> childrenAuth;
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值