1. 程式人生 > >JavaWeb-後臺資料分類化管理,且分類顯示

JavaWeb-後臺資料分類化管理,且分類顯示

先上效果圖:
鎮樓

這裡寫圖片描述

問題描述:我們要想前端的商品資訊層次分明,分類有致以便於後臺管理維護,那就勢必要在資訊插入後臺資料庫時對其按照“頂級分類”“子級分類”的規則進行排序。

解決方法:
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>