1.前台部分
<ul id="tt" data-options="checkbox:true,formatter:showName"></ul>
$('#tt').tree({
url:'${pageContext.request.contextPath}/permission/find'
});
2.后台部分
问题根源:我们如何去生成这么一个树型的字符串?
1.创建一个实体bean,里面的属性你开心就好,没有强行要求,但是一定要有孩子节点
public class Tree implements Serializable {
private static final long serialVersionUID = 1771389306247727349L;
private Integer id;
private String name;
private List<Tree> children = new ArrayList<Tree>();
public Tree(Integer id, String name) {
super();
this.id = id;
this.name = name;
}
public Tree() {
super();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Tree> getChildren() {
return children;
}
public void setChildren(List<Tree> children) {
this.children = children;
}
}
2.把我们拿到权限集合,做成我们的树。把树返回出去,那问题就解决了。
public Tree find() {
List<Permission> permissionList = permissionPresistence.find();
Tree tree = new Tree();
tree.setId(0);
tree.setName("权限");
for (Permission permission : permissionList) {
tree = makeTree(permission, tree);
}
return tree;
}
public Tree makeTree(Permission permission,Tree tree){
if (tree.getId()==permission.getParentId()) {
tree.getChildren().add(new Tree(permission.getPid(), permission.getDescription()));
}else{
for (Tree children : tree.getChildren()) {
makeTree(permission, children);
}
}
return tree;
}