JavaWeb-後臺資料分類化管理,且分類顯示
阿新 • • 發佈:2019-01-03
先上效果圖:
問題描述:我們要想前端的商品資訊層次分明,分類有致以便於後臺管理維護,那就勢必要在資訊插入後臺資料庫時對其按照“頂級分類”“子級分類”的規則進行排序。
解決方法:
1.要對資料資訊進行分類管理,很好,那就要先建立“分類規則”有了分類規則,這才能往裡面插入資料。
2.分類規則按照 “頂級–子級”來劃分,關鍵思路是,在分類表“gameClass”中每條記錄都設計一個父類fid的欄位,記錄其父類id,然後,在圖一中,每條記錄新增時將下拉列表中選中項的id,在servlet中賦值給要新增記錄的fid,作為其分類id,如圖:
只要按照這樣的設計,我們每次插入一條記錄時,都可以在表中形成,頂級分類–子級分類 這樣多個一連串的記錄,立刻就將資料分類管理起來。
3.分類管理的另一個關鍵點就是排序!排序的話,可以利用一個排序演算法
//2.遊戲類別排序
public List<NewClass> getSortClasses(List<NewClass> nclass,int fid){
for(int i=0;i<nclass.size();i++){
//2.1 判斷:傳進來的fid是否與集合中的哪一條相等,若相當,新增到新的集合中去!,繼續遞迴
if(fid==nclass.get(i).getFid()){
nclasses.add(nclass.get(i));
getSortClasses(nclass,nclass.get (i).getCid());
}
}
//迴圈結束了,也就排序好了!
return nclasses;
}
這樣排序出來的list集合,裡面儲存的資料就基本上是我們排序好的資料,在前臺JSP頁面上利用一個工具類就可以完美的顯示出來了
<c:forEach var="cs" items="${ClassSort }">
<!--1.設定引數 -->
<c:set var="level" value="${cs.level}" scope="request"></c:set> <!--取出level後,放入request作用域中,jsp指令碼中不能使用el表示式<%@ page isELIgnored="false" %> -->
<option value="${cs.cid}">
<%=StringUtils.repeat("----",(Integer)request.getAttribute("level")-1)%>${cs.cname }
</option>
</c:forEach>