這篇文章就把我自己在這方面應(yīng)用的實(shí)踐整理一下拿出來。為您具體介紹了在Tree有關(guān)方面應(yīng)用的完整實(shí)踐。
實(shí)例如下:

左邊的tree圖的實(shí)現(xiàn)方式是通過javascript+jsp實(shí)現(xiàn)。假如是為了實(shí)現(xiàn)邏輯上的tree結(jié)構(gòu)的維護(hù),采用的是xml解決方案。
現(xiàn)在這里說一下,Javascript+jsp的表現(xiàn)層的實(shí)現(xiàn)。這里的javascript并不是唯一的選擇,可以在網(wǎng)上下到類似的javascript(究竟是共享的嘛。:) ).點(diǎn)這里可以下載相關(guān)代碼.
其中的test.htm是javascript例子代碼:
"d.add(3,0,'技術(shù)與方案','admin.php?module=article&action=catelist&cid=3','','_blank');
"中的"3"是當(dāng)前節(jié)點(diǎn),"0"是父節(jié)點(diǎn),"技術(shù)與方案"是tree上顯示的節(jié)點(diǎn)名,"admin.php?......"指向的url."_blank"是指向的窗口。
從上可以看出,這個(gè)javascript已經(jīng)把tree圖實(shí)現(xiàn)的大部分工作已經(jīng)做好了。只要我們傳入對(duì)應(yīng)的數(shù)據(jù)就可以了。
首先是數(shù)據(jù)庫(kù)結(jié)構(gòu)。從上可以看出,有節(jié)點(diǎn)名,節(jié)點(diǎn)id,父節(jié)點(diǎn)id,節(jié)點(diǎn)url,節(jié)點(diǎn)target,還可以有個(gè)節(jié)點(diǎn)狀態(tài)(比如是激活或休眠,很常用用一種用法),當(dāng)然還可以有其它屬性,那就要根據(jù)項(xiàng)目的需要了。其實(shí)只要抓住一點(diǎn),有唯一節(jié)點(diǎn)id和唯一父節(jié)點(diǎn)id就可以了(面向?qū)ο螅┚涂梢粤恕?P> 有了數(shù)據(jù)庫(kù)結(jié)構(gòu),然后要實(shí)現(xiàn)tree圖就是根據(jù)一定的限制(比如權(quán)限,最后對(duì)應(yīng)為tree結(jié)構(gòu)的子集(當(dāng)然也必須是完整的tree結(jié)構(gòu)))取出符合條件并且完整的tree結(jié)構(gòu)的數(shù)據(jù)(我采用的解決方法是把權(quán)限對(duì)應(yīng)的節(jié)點(diǎn)的上溯父節(jié)點(diǎn)都取出來保證tree結(jié)構(gòu)的完整性,具體可以看java&xml心得(三)).
假設(shè)我們已經(jīng)完成了上述的工作,那么要實(shí)現(xiàn)tree圖的代碼應(yīng)該如下:
.........
這樣就實(shí)現(xiàn)了動(dòng)態(tài)tree圖。
上面的這種實(shí)現(xiàn)是用jsp+javascript實(shí)現(xiàn)。也可以用xml+xsl來實(shí)現(xiàn)。不是必要,只是可以讓新手也了解一下關(guān)于xml的應(yīng)用。:)
比如我們已經(jīng)成功把數(shù)據(jù)庫(kù)的數(shù)據(jù)導(dǎo)出成xml格式。代碼如下:
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注