java树形图 代码

树返回的格式是

layui.tree({
  elem: '#demo' //传入元素选择器
  ,nodes: [{ //节点
    name: '父节点1'
    ,children: [{
      name: '子节点11'
    },{
      name: '子节点12'
    }]
  },{
    name: '父节点2(可以点左侧箭头,也可以双击标题)'
    ,children: [{
      name: '子节点21'
      ,children: [{
        name: '子节点211'
      }]
    }]
  }]
});

首先我们我们把nodes封装成他所需要的格式: 直接上代码

public class TreeNode {

	private String id;// 绑定节点的标识值。
	private String name;// 显示的节点文本。
	private String iconCls;// 显示的节点图标CSS类ID
	private String version;//版本
	private String state;// 节点状态,'open' 或 'closed'
	private List<TreeNode> children;// 子节点
   
    
    //下面这几个属性是我需要的就封装进去啦(你们可以不封装进去)
    private boolean module; //是否事项目
	private String projectId; //项目Id
	private String projectName;
    get()  set()....
}

下面是控制器的代码controller

	/**
	 * 展示项目树
	 * 
	 * */
	@RequestMapping(value="selectModuleTree",produces = "application/json; charset=utf-8")
	@ResponseBody
	public List<TreeNode> selectModuleTree(){
		
		List<TreeNode> treeList = moduleConfigService.selectModuleTree();
		return treeList;
	}

然后servletImpl的

@Override
	public List<TreeNode> selectModuleTree() {
		List<Map<String, Object>> treeList = baseModuleConfigDao.selectModuleTree();
		//ruturn 掉下面的方法
        return getChildrenNodeModelue(treeList);
	}

	
		public List<TreeNode> getChildrenNodeModelue(List<Map<String, Object>> nodes) {

			List<TreeNode> nodeList = new ArrayList<TreeNode>();

			for (Map<String, Object> node : nodes) {

				TreeNode treeNode = new TreeNode();

				// 标识符
				treeNode.setId(node.get("MODULE_ID").toString());
				// 显示文本
				treeNode.setName(node.get("NAME").toString());
				//是否是模板
				treeNode.setModule(false);
				//项目Id
				/*treeNode.setProjectId(node.get("PROJECT_ID").toString());*/
				// 获取子节点
				List<Map<String, Object>> childrenNode = baseModuleConfigDao
						.selectModulModul(node.get("MODULE_ID").toString());
				treeNode.setState("open");
				        // 有子节点,获取子节点的下级节点
				if (childrenNode.size() > 0) {
                    //寻找节点调自己方法	
				List<TreeNode> childrenlist = getChildrenNodeModelue(childrenNode);
					treeNode.setChildren(childrenlist);
					
				} else {
				
				}

				nodeList.add(treeNode);
			}
			return nodeList;
		}

mapping中映射查询的值 BaseModuleConfigMapper.xml

  <select id="selectModuleTree" resultType="Map">
  		SELECT * FROM tbl_base_module_config WHERE PARENT_ID = '0'
  </select>

  <select id="selectModulModul" resultType="Map">
  SELECT  
			tc.*,
			bp.PROJECT_NAME AS projectName
	FROM tbl_base_module_config tc
	LEFT JOIN tbl_base_project bp ON tc.PROJECT_ID = bp.PROJECT_ID 
  	WHERE tc.PARENT_ID = #{parentId}
  </select>

猜你喜欢

转载自blog.csdn.net/qq_38092788/article/details/81449513
今日推荐