Le frontend est implémenté à l'aide d'EasyUI. EasyUI transmet un paramètre id au backend.
Lors du premier chargement, l'identifiant passé en arrière-plan est nul.
Chaque fois que le nœud de l'arborescence est développé, l'identifiant du nœud actuel sera transmis à l'arrière-plan.
Couche de contrôle :
/**
*arbre
*/
@RequestMapping(value = "/tree.do")
public void mytree (réponse HttpServletResponse, identifiant de chaîne) {
This.writeJson(response, bookService.getChildrenTree(id));
>
Couche de service :
@Transactionnel
@Override
liste publique
getChildrenTree(String pid) {
essayez {
Résultat Liste = nouveau ArrayList();
//Obtenir la liste des nœuds enfants
Liste childrenList = this.getChildrenType(pid);
if (childrenList != null && childrenList.size() > 0) {
pour (enfant TBookType : childrenList) {
// Obtenez le nombre de petits-enfants
Compte long = bookDao.getChildrenCount(String.valueOf(child.getId()));
Nœud d'arbre = 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");
//Enregistrez les données childrenList dans l'arborescence une par une
result.add(node);
>
>
Retourner le résultat ;
} catch (Exception e) {
throw new BusinessException("Une erreur s'est produite lors de l'obtention des données de type de livre !", e);
>
>
Couche Dao :
@Override
liste publique getChildrenType(String pid) {
//Le pid de ceci est l'identifiant du nœud actuellement développé, et le nœud enfant est obtenu via l'identifiant du nœud parent
StringBuilder sqlstr = new StringBuilder();
si (StringUtils.isBlank(pid))
sqlstr.append("select * from booktype btwhere bt.pid=0");
d'autre
sqlstr.append("select * from booktype bt où bt.pid=" pid );
Renvoyez this.search2(TBookType.class, sqlstr.toString());
>
@Override
public long getChildrenCount (String pid) {
//Le pid de ceci est l'identifiant du nœud actuellement développé, et le nombre de nœuds enfants est obtenu via l'identifiant du nœud parent
StringBuilder sqlstr = new StringBuilder();
si (StringUtils.isBlank(pid))
sqlstr.append("select count(*) from booktype tb où tb.pid='0'");
d'autre
sqlstr.append("select count(*) from booktype tb où tb.pid='" pid "'");
Renvoyez this.count(sqlstr.toString());
>
Ce qui précède est tout le code de cet article sur l'implémentation d'arbres asynchrones par EasyUI. J'espère qu'il sera utile à tout le monde
.