zTree結(jié)合servlet簡單使用

前臺代碼:

目前創(chuàng)新互聯(lián)建站已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、仁化網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

1、html部分

<div style="width: 99%; height: 80%; margin-top: 4px; border: solid 0px #44c5e4; float: left; text-align: left; OVERFLOW-Y: auto; OVERFLOW-X: auto;">
    <ul id="knowledgeTree" class="ztree"></ul>
</div>

2、js部分代碼:

$knowledgeTree ="";
   var setting = {
    check: {
    enable: false,       //顯示復(fù)選框或者radio
    chkStyle: "checkbox",     //復(fù)選框或者radio
    chkboxType: { "Y" : "ps", "N" : "ps" } //控制關(guān)系
    },
    view: {
     selectedMulti: false, //true/false分別表示 支持/不支持 同時選中多個節(jié)點
     showTitle: true,  //true/false 分別表示 顯示 /隱藏 提示信息(即鼠標(biāo)移動到節(jié)點上時,自動彈出的提示信息圖層)
     showIcon:false
    },
    data: {
     key: {
      name: "name",  //設(shè)置 zTree 顯示節(jié)點名稱的屬性名稱
      title: "title"  //設(shè)置 顯示節(jié)點提示信息的屬性名稱。[setting.view.showTitle = true 時生效]
     },
     simpleData: {
      enable: true,  //是否使用簡易JSON格式數(shù)據(jù)(非父子結(jié)構(gòu))
      idKey: "id",  //設(shè)置 zTree 顯示節(jié)點名稱的節(jié)點名稱
      pIdKey: "pid",  //設(shè)置 zTree 簡易數(shù)據(jù)的父節(jié)點名稱
      rootPId: "-1"  //最上層父節(jié)點
     }
    },
    callback: {
     onClick: onClick
    }
  };

jQuery(document).ready(function(){
     $.ajax({
    url : localBasePath + "/servlet/KnowledgeToolServlet",
    type : "post",
    dataType : "json",
    success : function(dataObj) {
         $knowledgeTree = $.fn.zTree.init($("#knowledgeTree"), setting, dataObj);
    }
   });
  });

 

3、servlet部分代碼:

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

response.setContentType("text/html");
  response.setCharacterEncoding("utf-8");
  PrintWriter out = response.getWriter();

KnowledgeService ks=new KnowledgeService();

List<TreeNode> treeNodeList=ks.searchKonwldgeTree();

String treeNodeJson = JSONSerializer.toJSON(treeNodeList).toString();
 out.print(treeNodeJson);

  out.flush();
  out.close();
 }

其中KnowledgeService.searchKonwldgeTree()代碼如下:

//查詢知識庫樹
 public List<TreeNode> searchKonwldgeTree() {
  StringBuffer sql = new StringBuffer();
  Connection conn = null;
  Statement stmt = null;
  List<Knowledge> knowlList = new ArrayList<Knowledge>();
  List<TreeNode> treeNodeList = new ArrayList<TreeNode>();
  ResultSet rs = null;
    try {
   conn = newdom.getConnection();
   stmt = conn.createStatement();
   conn.setAutoCommit(false);
   sql.append(" select skl.knowid, skl.usedoctype,sed.typename,skl.knowname,skl.knowtext from SBL_KNOWLEDGE_LIB skl,SZD_EMR_DOCTYPE sed ";

   sql.append(" order by skl.usedoctype ");
   System.out.println(sql.toString());
   rs = stmt.executeQuery(sql.toString());
   while (rs.next()) {
    Knowledge knowledge=new Knowledge();
    knowledge.setId(rs.getString("knowid"));
    knowledge.setName(rs.getString("knowname"));
    knowledge.setDocType(rs.getString("usedoctype"));
    knowledge.setDocTypeName(rs.getString("typename"));
    knowledge.setContent(rs.getString("knowtext"));
    knowlList.add(knowledge);
   }
  } catch (Exception ex) {
   log.error("查詢知識庫樹錯誤");
   ex.printStackTrace();
  } finally {
   newdom.close(conn, stmt, rs);
  }
  String typeTemp="";
  for(Knowledge knowledge:knowlList){
   TreeNode treeNode = new TreeNode();
   if(!knowledge.getDocType().equals(typeTemp)){
    TreeNode treeNodeParent = new TreeNode();
    treeNodeParent.setId(knowledge.getDocType());
    treeNodeParent.setName(knowledge.getDocTypeName());
    treeNodeParent.setIsParent("true");
    treeNodeParent.setChecked("true");
    treeNodeParent.setOpen("false");
    treeNodeParent.setPid("-1");
    treeNodeParent.setTitle(knowledge.getDocTypeName());
    treeNodeList.add(treeNodeParent);
   }
   typeTemp=knowledge.getDocType();
   treeNode.setId(knowledge.getId());
   treeNode.setName(knowledge.getName());
   treeNode.setTitle(knowledge.getName());
   treeNode.setContent(knowledge.getContent());
   treeNode.setChecked("true");
   treeNode.setOpen("true");
   treeNode.setIsParent("false");
   treeNode.setPid(knowledge.getDocType());
   treeNodeList.add(treeNode);
  }
  return treeNodeList;
 }

 

大致代碼如上,實現(xiàn)的思路是將要做成樹的數(shù)據(jù),按照zTree的指定格式,放到一個list里面,本文中樹的內(nèi)容是表SBL_KNOWLEDGE_LIB ,SZD_EMR_DOCTYPE結(jié)合的數(shù)據(jù),將這些數(shù)據(jù)從數(shù)據(jù)庫中查出來,然后按照實際需要組裝成所需要的List,然后轉(zhuǎn)換成json格式print出就可以了。這樣ajax里面接收到返回的json格式的對象后,直接賦值給zTree就完成了一個樹的簡單實現(xiàn)。

 

附件:http://down.51cto.com/data/2362179

文章題目:zTree結(jié)合servlet簡單使用
轉(zhuǎn)載源于:http://bm7419.com/article32/ijpdsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)App設(shè)計、移動網(wǎng)站建設(shè)、網(wǎng)站收錄、軟件開發(fā)域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)