jquery easyUI tree 后台实现代码

根据demo

jquery easyUI tree的树形格式的json形式为

[{
 "id":1,
 "text":"Folder1",
 "iconCls":"icon-ok",
 "children":[{
  "id":2,
  "text":"File1",
  "checked":true
 },{
  "id":3,
  "text":"Folder2",
  "state":"open",
  "children":[{
   "id":4,
   "text":"File3",
   "attributes":{
    "p1":"value1",
    "p2":"value2"
   },
   "checked":true,
   "iconCls":"icon-reload"
  },{
   "id": 8,
   "text":"Async Folder",
   "state":"closed"
  }]
 }]
},{
 "text":"Languages",
 "state":"closed",
 "children":[{
  "id":"j1",
  "text":"Java"
 },{
  "id":"j2",
  "text":"C#"
 }]
}]

前台调用代码:

<%@ page language="java" contentType="text/html;charset=UTF-8"
 errorPage=""%>
 <%@ include file="/admin/CommonFiles/struts.jsp" %>
<html>
 <head>
  <title>信息发布平台</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <link rel="stylesheet" type="text/css" href="${ctx}/admin/css/easyui.css"></link>
  <script type="text/javascript" src="${ctx}/admin/js/jquery-1.4.2.js"></script>
  <script type="text/javascript" src="${ctx}/admin/js/jquery.easyui.min.js"></script>
  <link rel="stylesheet" href="${ctx}/admin/style.css" type="text/css">
  <script type="text/javascript">
  
  $(function(){
   $('#tt2').tree({
    checkbox: true,
    url: '${ctx}/ItemTree.do?method=createTree',
    onClick:function(node){
     $(this).tree('toggle', node.target);
     var ss=node.attributes.cas.toString();//p1
     alert('you click '+ss);
    },
    onContextMenu: function(e, node){
     e.preventDefault();
     $('#tt2').tree('select', node.target);
     $('#mm').menu('show', {
      left: e.pageX,
      top: e.pageY
     });
    }
   });
  });
  
  </script>
 </head>
 <body bgcolor="#EBF1FA" leftmargin="5" topmargin="5" marginwidth="0"
  marginheight="0">
   <ul id="tt2"></ul>
 </body>
</html>

后台服务端的递归代码(遍历每一个节点):

/**
  * @param mapping
  * @param form
  * @param request
  * @param response
  * @return
  * @throws Exception
  */
 public ActionForward createTree(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  m_objsa = (SessionAdmin) request.getSession().getAttribute("amUser");
  int parentid=NumberUtils.stringToInt(request.getParameter("xxxx"));
  String state="";
  String sel="";
  
  List<TreeDto> list = new ArrayList<TreeDto>();
  
  createTree(parentid,state,sel,list);
  
  
  String str =JSONArray.fromObject(list).toString();
  

  //返回结果到前台
  response.getWriter().write(str);
  response.getWriter().flush();
  response.getWriter().close();
  
  return null;
  
 }
 //显示树型主函数,递归,选择所属栏目用,sel已选中的ID,curitem当前栏目ID
 //添加内容的时候,选择所属栏目
 public List<TreeDto> createTree(int parentid,String state,String sel,List<TreeDto> list2) throws SQLException
 {
  
//  list2=new ArrayList<TreeDto>();
  ArrayList<TreeDto> al = getPrivateSubItem(parentid);
  if(al != null && !al.isEmpty())
  {
   int n = al.size();
   for(int i = 0; i < n;i++)
   {
    TreeDto o = (TreeDto)al.get(i);
    
    //不包含子菜单
    if(!isHaveSubItem(o.getId()))
    {
    }else{
     List<TreeDto> list333=new ArrayList<TreeDto>();
     o.setChildren(createTree(o.getId(), state, sel,list333));
    }
    
    list2.add(o);
    
   }
  }
  
  return al;
 }

//检索

private ArrayList<TreeDto> getPrivateSubItem(int parentid) throws SQLException
 {
  m_strSql = new StringBuffer();
  m_strSql.append("Select ID,Name From Item Where IsAuditing = 1");
  m_strSql.append("And WebID = " + m_objsa.getWebID());
//  if(!m_objsa.isWebSuperAdmin())
//   m_strSql.append(" And '" + m_objsa.getItemPower() + "' Like '%' + CONVERT(varchar,ID) + '_0%'");
  m_strSql.append(" And ParentID = " + parentid);
  
  
  Connection conn = null;
  PreparedStatement stmt = null;
  ResultSet rs = null; 
  ArrayList<TreeDto> al = new ArrayList<TreeDto>();
  try {
   conn = this.getSqlSession().getConnection();
   stmt = conn.prepareStatement(m_strSql.toString());
   rs = stmt.executeQuery();
   
   if(rs!=null){
    while(rs.next())
    {
     TreeDto o = new TreeDto();
     o.setId(rs.getInt("ID"));
     o.setText(rs.getString("Name"));
     al.add(o);
    }
   }
   

  }catch(Exception se){
   se.printStackTrace();
  }finally{
   DBUtils.close(rs, stmt, conn);
  }
  
  return al;
 }

//判断是否具有子节点

private boolean isHaveSubItem(int parentid) throws SQLException
 {
  m_strSql = new StringBuffer();
  m_strSql.append("Select Count(ID) as C From Item Where IsAuditing = 1 And WebID = " + m_objsa.getWebID());
  m_strSql.append(" And ParentID = " + parentid);
  
  Connection conn = null;
  PreparedStatement stmt = null;
  ResultSet rs = null; 
  
  try {
   conn = this.getSqlSession().getConnection();
   stmt = conn.prepareStatement(m_strSql.toString());
   rs = stmt.executeQuery();
   
   if(rs.next() && rs != null)
   {
    int i = rs.getInt("C");
    rs.close();
    return i > 0;
   }

  }catch(Exception se){
   se.printStackTrace();
  }finally{
   DBUtils.close(rs, stmt, conn);
  }
  
  return false;  
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值