在數據的設計的時(shí)候經(jīng)常會(huì )碰到在同一張表中通過(guò)在記錄中添加如parentid字段關(guān)聯(lián)本表中另一條記錄,這種做法在實(shí)現多級分類(lèi)時(shí)很有效,如產(chǎn)品類(lèi)型表,最簡(jiǎn)單的表可以設計為
ID,NAME,PARENTID
1 服裝 0
2 上衣 1
2 褲子 1
這種結構在JSP中可通過(guò)多重循環(huán)來(lái)實(shí)現分類(lèi)顯示,今天在項目中碰到了一個(gè)比較好的實(shí)現,記下來(lái)備忘,也分享給大家,希望大家有好的做法也可以貼出來(lái),大家都可以看看。
<s:iterator value="struts中產(chǎn)生的list" var="_class" status="_rowstatus">
<!-- 顯示頂級分類(lèi),這是我項目中的字段,需要根據自己需求修改 -->
<s:if test="#_class.classType==2">
<li>
<h3>
${_class.className }
</h3>
<!-- 遍歷集合,找出此頂級分類(lèi)下所有的子分類(lèi) -->
<s:iterator value="classList.{?#this.classParentId==#_class.id}"
var="class1" status="rowstatus">
<!-- 輸出最后一個(gè)元素是不需要加分隔符 -->
<s:if test="#rowstatus.last">
<a href='#;' onclick="getProByClassId('${class1.id}');">${class1.className}</a>
</s:if>
<s:else>
<a href='#;' onclick="getProByClassId('${class1.id}');">${class1.className}</a> |
</s:else>
</s:iterator>
</li>
</s:if>
</s:iterator>
以上代碼中比較好的實(shí)現是 classList.{?#this.classParentId==#_class.id}
這句形成了一個(gè)父級分類(lèi)下所有子分類(lèi)的集合。
大家如果有更好的做法希望能貼出來(lái)。。。
聯(lián)系客服