//树形实体
public class ExtTreeEntity {
private String id;
private String parentId;//父节点
private String text;//树形显示的文本
private boolean leaf;//是否叶子节点
private List<ExtTreeEntity> children;
//TOTO getter/setter
}
List<Entity> list = getAllEntity();//从数据库查询所有数据
ExtTreeEntity treeObj = new ExtTreeEntity();
treeObj.setId("0");
treeObj.setParentId("-1");
treeObj.setText("根节点");
List<ExtTreeEntity> extTreeEntitys = new ArrayList<ExtTreeEntity>();
ExtTreeEntity obj = new ExtTreeEntity();
for (Entity entity: list) {
if (entity.getPid() == 0) {
obj = new ExtTreeEntity();
obj.setId(entity.getId() + "");
obj.setParentId(entity.getPid() + "");
obj.setText(entity.getName());
extTreeEntitys.add(obj);
}
}
treeObj.setChildren(extTreeEntitys);
treeObj = recursiveTree(list,treeObj);
public ExtTreeEntity recursiveTree(List<Entity> list,ExtTreeEntity treeObj) {
for (ExtTreeEntity extTreeEntity : treeObj.getChildren()) {
String id = extTreeEntity.getId();
List<ExtTreeEntity> children = new ArrayList<ExtTreeEntity>();
for (Entity entity : list) {
String parentId = entity.getPid() + "";
if (id.equals(parentId)) {
ExtTreeEntity obj = new ExtTreeEntity();
obj.setId(entity.getId() + "");
obj.setParentId(entity.getPid() + "");
obj.setText(entity.getName());
obj.setLeaf(false);
children.add(obj);
}
}
extTreeEntity.setChildren(children);
if (extTreeEntity.getChildren().size()==0) {
extTreeEntity.setLeaf(true);//叶子节点
}
recursiveTree(list,extTreeEntity);
}
return treeObj;
}