前端 cateTree.html
前端 myTree.js
$(function() {
getData();
})
function getData(){
$.ajax({
type: "get",
data: "id=0",
url: "/category/findCategoryJson",
success: function (data) {
layui.use(['tree', 'util'], function() {
var tree = layui.tree
, layer = layui.layer
, util = layui.util
//无连接线风格
tree.render({
elem: '#test13'
,data: data
,showLine: false //是否开启连接线
});
})
},
});
}
Controller中的方法
@RequestMapping(value = "/findCategoryJson")
@ResponseBody
public ListfindTree(){
Listlist=categoryService.getTree();
return list;
}
service中的方法
ListgetTree();
serviceImpl中的方法
@Override
public ListgetTree() {
BuildTree buildTree=new BuildTree();
//获取数据的list
ListtreeNodes=categoryDOMapper.selectTree();
Listlist= buildTree.buildTree(treeNodes);
return list;
}
dao中
ListselectTree();
Treemapper.xml
SELECT id AS id,category_name AS title , parent_id AS pid FROM category
BuildTree 类
import java.util.ArrayList;
import java.util.List;
/**
* Created by fengcai on 2020/7/5.
*/
public class BuildTree {
ListTreeNodes = new ArrayList<>();
public ListbuildTree(ListTreeNodes) {
BuildTree treeBuilder = new BuildTree(TreeNodes);
return treeBuilder.buildJSONTree();
}
public BuildTree() {
}
public BuildTree(ListTreeNodes) {
super();
this.TreeNodes = TreeNodes;
}
// 构建JSON树形结构
public ListbuildJSONTree() {
ListTreeNodeTree = buildTree();
return TreeNodeTree;
}
// 构建树形结构
public ListbuildTree() {
ListtreeTreeNodes = new ArrayList<>();
//获取所有根节点
ListrootTreeNodes = getRootTreeNodes();
//获取每个根节点
for (TreeNode rootTreeNode : rootTreeNodes) {
try {
//递归这个根节点的子节点
buildChildTreeNodes(rootTreeNode);
//用list来存放每个根节点
treeTreeNodes.add(rootTreeNode);
} catch (Exception e) {
e.printStackTrace();
}
}
return treeTreeNodes;
}
// 递归子节点
public void buildChildTreeNodes(TreeNode TreeNode) {
Listchildren = getChildTreeNodes(TreeNode);
if (!children.isEmpty()) {
for (TreeNode child : children)
try {
buildChildTreeNodes(child);
} catch (Exception e) {
e.printStackTrace();
}
TreeNode.setChildren(children);
}
}
/**
* 获取父节点下所有的子节点
* @param pTreeNode
* @return
*/
public ListgetChildTreeNodes(TreeNode pTreeNode) {
ListchildTreeNodes = new ArrayList<>();
for (TreeNode n : TreeNodes) {
// if (pTreeNode.getCode().equals(n.getPcode())) {
if (pTreeNode.getId().equals(n.getPid())) {
childTreeNodes.add(n);
}
}
return childTreeNodes;
}
// 判断是否为根节点
public boolean rootTreeNode(TreeNode TreeNode) {
boolean isRootTreeNode = true;
for (TreeNode n : TreeNodes) {
// if (TreeNode.getPcode().equals(n.getCode())) {
if (TreeNode.getPid().equals(n.getId())) {
isRootTreeNode = false;
break;
}
}
return isRootTreeNode;
}
// 获取集合中所有的根节点
public ListgetRootTreeNodes() {
ListrootTreeNodes = new ArrayList<>();
for (TreeNode n : TreeNodes) {
if (rootTreeNode(n)) {
rootTreeNodes.add(n);
}
}
return rootTreeNodes;
}
}
TreeNode 类
public class TreeNode {
private Integer id;
private Integer cid;
private String title;
private Integer pid;
private Listchildren = new ArrayList();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
/* public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}*/
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public List getChildren() {
return children;
}
public void setChildren(List children) {
this.children = children;
}
@Override
public String toString() {
return "TreeNode{" +
"id=" + id +
//", cname='" + cname + '\'' +
", title='" + title + '\'' +
", pid=" + pid +
", children=" + children +
'}';
}
}
效果图