在JS中,將顯示樹的url地址寫成control的地址即可.
control:
代碼如下:
@RequestMapping(value = "/tree")
public void tree(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.writeJson(response, bookService.getTree());
}
dao:
代碼如下:
/**
* 獲取樹
*/
@Override
public List<Tree> getTree(){
try {
List<Tree> trees = new ArrayList<Tree>();
List<TBookType> root = this.search(0);
if(root != null && root.size() > 0){
for(TBookType tb : root){
Tree rootnode = this.getNode(tb);
rootnode.setState("open");
trees.add(rootnode);
}
}
return trees;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 遞歸
*/
private Tree getNode(TBookType node){
if(node == null){
return null;
}
try {
Tree treenode = new Tree();
treenode.setId(String.valueOf(node.getId()));
treenode.setText(node.getName());
treenode.setPid(String.valueOf(node.getPid()));
List<TBookType> children = this.search(node.getId());
if(children != null && children.size() > 0){
treenode.setState("closed");
for(TBookType child : children){
Tree childnode = this.getNode(child);
if(childnode != null){
treenode.getChildren().add(childnode);//遞歸
}
}
}
return treenode;
} catch (Exception e) {
throw new BusinessException("獲取數據出錯!", e);
}
}
以上就是使用EasyUI實現同步樹的全部核心代碼了,希望大家能夠喜歡。