Halaman hadapan dilaksanakan menggunakan EasyUI EasyUI menghantar parameter id ke bahagian belakang.
Apabila memuatkan buat kali pertama, id yang dihantar ke latar belakang adalah batal.
Setiap kali nod pokok dikembangkan, id nod semasa akan dihantar ke latar belakang.
Lapisan kawalan:
/**
* pokok
*/
@RequestMapping(value = "/tree.do")
public void mytree(HttpServletResponse response, String id) {
This.writeJson(response, bookService.getChildrenTree(id));
}
Lapisan perkhidmatan:
@Transaksional
@Override
public List
getChildrenTree(String pid) {
cuba {
Senaraikan hasil = ArrayList();
//Dapatkan senarai nod anak
Senaraikan childrenList = this.getChildrenType(pid);
if (childrenList != null && childrenList.size() > 0) {
untuk (TBookType child : childrenList) {
// Dapatkan bilangan cucu
Kiraan panjang = bookDao.getChildrenCount(String.valueOf(child.getId()));
Nod pokok = Pokok baharu();
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");
//Simpan data childrenList ke dalam pepohon satu demi satu
result.add(nod);
}
}
Pulangan hasil;
} tangkapan (Pengecualian e) {
throw new BusinessException("Ralat berlaku semasa mendapatkan data jenis buku!", e);
}
}
Lapisan Dao:
@Override
Senarai awam getChildrenType(String pid) {
//Pid ini ialah id nod yang sedang dikembangkan dan nod anak diperoleh melalui id nod induk
StringBuilder sqlstr = new StringBuilder();
jika (StringUtils.isBlank(pid))
sqlstr.append("select * from booktype bt where bt.pid=0");
lain
sqlstr.append("select * from booktype bt where bt.pid=" pid );
Kembalikan this.search2(TBookType.class, sqlstr.toString());
}
@Override
public long getChildrenCount(String pid) {
//Pid ini ialah id nod yang sedang dikembangkan dan bilangan nod anak diperoleh melalui id nod induk
StringBuilder sqlstr = new StringBuilder();
jika (StringUtils.isBlank(pid))
sqlstr.append("select count(*) from booktype tb where tb.pid='0'");
lain
sqlstr.append("select count(*) from booktype tb where tb.pid='" pid "'");
Kembalikan this.count(sqlstr.toString());
}
Di atas ialah semua kod artikel ini tentang EasyUI melaksanakan pokok tak segerak, saya harap ia akan membantu semua orang