easyui_08_动态tree

1:方法一

		<%--tree--%>
        <ul id="myTree"></ul>
	<script>
        $(function(){
            $('#myTree').tree({
                url:"${path}/easyui/tree.do"
            });
        })
    </script>
@Data
public class Tree {

    private Integer id;
    private String text;
    private String state;
    private String checked;
    private String iconCls;
    private Integer pid;

}
@Data
public class TreeVO extends Tree {

    private List<TreeVO> children;

}
@ResponseBody
    @RequestMapping("tree")
    public List<TreeVO> tree(){
        List<TreeVO> list =userService.treeList();
        return list;
    }
/**
     * easyui动态tree
     *
     * 代码优化:递归
     *  自己调用自己
     *
     *
     * @return
     */
    @Override
    public List<TreeVO> treeList() {
        //获取到根节点的数据
        List<TreeVO> trees = userMapper.treeList(0);
        //调用方法,加载子节点
        getChildrenUtil(trees);

        return trees;
    }


    public void getChildrenUtil(List<TreeVO> trees){//1、2、3
        for (int i = 0; i < trees.size(); i++) {
            TreeVO treeVO = trees.get(i);
            List<TreeVO> treeVOS = userMapper.treeList(treeVO.getId());//获取到4、5
            treeVO.setChildren(treeVOS);
            //通过4、5加载子节点
            getChildrenUtil(treeVOS);//去获取6、7
        }
        //return trees;
    }
<select id="treeList" resultType="treeVO">
      select * from t_tree where pid = #{pid}
    </select>

方法二:

当state 为closed时,默认所有节点都是折叠的。
当点击展开按钮的时候,会自动发送一个请求。
在这里插入图片描述
默认会将该节点的id值传递到后台;
在这里插入图片描述
后台只需要通过id作为pid查询相对于的list集合数据。

/**
     *
     * defaultValue: 默认的值为0
     * required:
     *          true:默认的,必须传递的参数
     *          false:不是必须传递的
     * @param id
     * @return
     */
    @ResponseBody
    @RequestMapping("tree2")
    public List<TreeVO> tree2(@RequestParam(defaultValue = "0",required = false) int id){
        List<TreeVO> list =userService.treeList2(id);
        return list;
    }

猜你喜欢

转载自blog.csdn.net/m0_37392489/article/details/86496180