Das Frontend wird mit EasyUI implementiert. EasyUI übergibt einen ID-Parameter an das Backend.
Beim ersten Laden ist die an den Hintergrund übergebene ID null.
Jedes Mal, wenn der Baumknoten erweitert wird, wird die ID des aktuellen Knotens an den Hintergrund übergeben.
Kontrollebene:
/**
* Baum
*/
@RequestMapping(value = "/tree.do")
public void mytree(HttpServletResponse Antwort, String-ID) {
This.writeJson(response, bookService.getChildrenTree(id));
}
Serviceschicht:
@Transactional
@Override
public List getChildrenTree(String pid) {
versuche es mit {
List result = new ArrayList();
//Liste der untergeordneten Knoten abrufen
List childrenList = this.getChildrenType(pid);
if (childrenList != null && childrenList.size() > 0) {
for (TBookType child :childrenList) {
// Ermitteln Sie die Anzahl der Enkelkinder
Lange Zählung = bookDao.getChildrenCount(String.valueOf(child.getId()));
Baumknoten = neuer Baum();
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");
//Speichern Sie die ChildrenList-Daten einzeln im Baum
result.add(node);
}
}
Ergebnis zurückgeben;
} Catch (Ausnahme e) {
throw new BusinessException("Beim Abrufen der Buchtypdaten ist ein Fehler aufgetreten!", e);
}
}
Dao-Schicht:
@Override
public List getChildrenType(String pid) {
// Die PID davon ist die ID des aktuell erweiterten Knotens, und der untergeordnete Knoten wird über die ID des übergeordneten Knotens erhalten
StringBuilder sqlstr = new StringBuilder();
if (StringUtils.isBlank(pid))
sqlstr.append("select * from booktype bt where bt.pid=0");
sonst
sqlstr.append("select * from booktype bt where bt.pid=" pid );
Geben Sie this.search2(TBookType.class, sqlstr.toString());
zurück
}
@Override
public long getChildrenCount(String pid) {
// Die PID davon ist die ID des aktuell erweiterten Knotens, und die Anzahl der untergeordneten Knoten wird über die ID des übergeordneten Knotens
ermittelt
StringBuilder sqlstr = new StringBuilder();
if (StringUtils.isBlank(pid))
sqlstr.append("select count(*) from booktype tb where tb.pid='0'");
sonst
sqlstr.append("select count(*) from booktype tb where tb.pid='" pid "'");
Geben Sie this.count(sqlstr.toString());
zurück
}
Das Obige ist der gesamte Code dieses Artikels über die Implementierung asynchroner Bäume durch EasyUI. Ich hoffe, er wird für alle hilfreich sein.