dTree创建树型结构

该博客介绍如何在Java Action中创建并填充dTree以展示树型结构。通过遍历Power对象列表和对应的Search子列表,动态生成JavaScript代码,用于在JSP页面上渲染dTree。dTree节点分别代表Power和Search对象,允许用户展开和关闭树形结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Action中:

public void treeView1() throws ServletException, IOException {
  StringBuffer bufHtml = new StringBuffer();
  List<Power> powerList=PowerBean.listPowerAll();
  Map<Integer,List<Search>> pslist=new HashMap<Integer,List<Search>>();
  Integer id;
  for(int i=0;powerList!=null&&i<powerList.size();i++){
   id=powerList.get(i).getId();
   pslist.put(id, this.findSearchByPid(id));
  }
  bufHtml.append("<script type=\"text/javascript\">");
  bufHtml.append("d=new dTree('d');");
  bufHtml.append("d.add(0,-1,'地图展示');");
  int i=0;
  int j=i+1;
  int m=0;
  for (Power power : powerList) {
   bufHtml.append("d.add(");
   bufHtml.append(j+","+i+",");
   bufHtml.append("'"+power.getName()+"'");
   bufHtml.append(");");
   List<Search> slst = pslist.get(power.getId());
   if(slst.size()>0){
    m=j+1;
    for (Search search : slst) {
     bufHtml.append("d.add(");
     bufHtml.append(m+","+j+",");
     bufHtml.append("'"+search.getName()+"','");
     bufHtml.append("../viewer/searchCommonArea.ctr?sid="+search.getId()+"&apid=0','','main');");
     m=m+1;
    }
    if(m>0){
     j=m+1;
    }
   }else{
    j=j+1;
   }
  
  }
  bufHtml.append("document.write(d)");
  bufHtml.append("</script>");
  request.setAttribute("treeJS1", bufHtml.toString());
  super.forView(search1link, request, response);
 }

Jsp页面:

<div class="dtree" >
      <p>
       <a href="javascript: d.openAll();"><font color="#FFFFFF">展开所有</font>
       </a> |
       <a href="javascript: d.closeAll();"><font color="#FFFFFF">关闭所有</font>
       </a>
      </p>
      <%
      String buf = (String)request.getAttribute("treeJS1");
      out.println(buf);
      %>
     </div>

备注:forView方法如下:

 public void forView(String url,HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
            url = CtrModelContainer.Protect_model_url + url;
            request.getRequestDispatcher(url).forward(request, response);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值