프런트엔드는 EasyUI를 사용하여 구현됩니다. EasyUI는 id 매개변수를 백엔드에 전달합니다.
처음 로딩 시 백그라운드로 전달된 ID는 null입니다.
트리 노드가 확장될 때마다 현재 노드의 ID가 백그라운드로 전달됩니다.
제어 레이어:
/**
*나무
*/
@RequestMapping(value = "/tree.do")
public void mytree(HttpServletResponse 응답, 문자열 ID) {
This.writeJson(응답, bookService.getChildrenTree(id));
}
서비스 계층:
@트랜잭션
@오버라이드
공개 목록 getChildrenTree(String pid) {
시도해보세요 {
List 결과 = new ArrayList();
//자식 노드 목록 가져오기
목록 childrenList = this.getChildrenType(pid);
if (childrenList != null && childrenList.size() > 0) {
for (TBookType 하위 : childrenList) {
// 손주 수를 구합니다
긴 개수 = bookDao.getChildrenCount(String.valueOf(child.getId()));
트리 노드 = new Tree();
Node.setId(String.valueOf(child.getId()));
Node.setPid(String.valueOf(child.getPid()));
Node.setText(child.getName());
Node.setChildren(null);
node.setState(count > 0 ? "closed" : "open");
//childrenList 데이터를 트리에 하나씩 저장합니다
result.add(노드);
}
}
결과 반환
} 잡기(예외 e) {
throw new BusinessException("책 유형 데이터를 가져오는 중 오류가 발생했습니다!", e);
}
}
다오 레이어:
@오버라이드
공개 목록 getChildrenType(String pid) {
//이것의 pid는 현재 확장된 노드의 id이고, 자식 노드는 부모 노드의 id를 통해 얻는다
StringBuilder sqlstr = new StringBuilder();
if (StringUtils.isBlank(pid))
sqlstr.append("bt.pid=0인 북타입 bt에서 * 선택");
그 외
sqlstr.append("select * from booktype bt where bt.pid=" pid );
Return this.search2(TBookType.class, sqlstr.toString());
}
@오버라이드
public long getChildrenCount(String pid) {
//이것의 pid는 현재 확장된 노드의 id이고, 부모 노드의 id를 통해 자식 노드의 개수를 구한다
StringBuilder sqlstr = new StringBuilder();
if (StringUtils.isBlank(pid))
sqlstr.append("tb.pid='0'인 경우 북타입 tb에서 count(*) 선택");
그 외
sqlstr.append("tb.pid='" pid "'");
return this.count(sqlstr.toString());
}
위 내용은 비동기 트리를 구현하는 EasyUI에 대한 이 기사의 모든 코드입니다. 모든 사람에게 도움이 되기를 바랍니다