静态数据看了下有个children属性,然后叶子节点有一个leaf属性,现在要通过action获取到后台的数据,但是不知道怎么组织数据的结构,我有个部门的实体类,里面只有一个上级id是指向父部门的id,求教怎么才能将数据显示到页面?

解决方案 »

  1.   

    给你发个我们用的吧。 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@page import="HibernateDAO.*"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>ERP</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->  <link rel="stylesheet" type="text/css" href="css/ext-all.css"/>
        <!-- GC -->
        <!-- LIBS -->
        <script type="text/javascript" src="js/ext-base.js"></script>
        <!-- ENDLIBS -->    <script type="text/javascript" src="js/ext-all.js"></script>

      </head>
      <script>
      Ext.onReady(function() {
    var addPanel = function(btn, event) { var n;
    n = tabPanel.getComponent(btn.id);
    if(n) {
    tabPanel.setActiveTab(n);
    return;
    }
    n = tabPanel.add( {
    id : btn.id,
    title : btn.text,
    html : '<iframe width=100% height=100% src=' + btn.id + ' />',
    //autoLoad : '',
    closable : 'true'
    });
    tabPanel.setActiveTab(n);

    }<%           List<Submenu> list2 = (List<Submenu>) request.getAttribute("submenus");
    List<Menu> list=(List<Menu>)request.getAttribute("menus");
    List<Useraction> list1=(List<Useraction>)request.getAttribute("list");
    for(int i=0;i<list.size();i++){
    Menu menu=(Menu)list.get(i);
    String s= menu.getMenuname().toString();
    String id=menu.getId().toString();
    %>            var item<%= i%> = new Ext.Panel({
                
                    title: '<%= s%>',
                    cls:'empty',
                      autoScroll : true,
                    
                    items : [ 
                    
                    <%
                    int size=0;
                    for(int k=0;k<list2.size();k++){
                     Submenu submenu=list2.get(k);
                     if( submenu.getMenuid().toString().equals(id)){
    size++; 
                     }
                    }
                 int ids=0;
                    for(int j=0;j<list2.size();j++){
                     Submenu submenu=list2.get(j);
                     if( submenu.getMenuid().toString().equals(id)){
                     %>                
                     new Ext.Button({
    id : '<%= submenu.getUrl().toString() %>',
    text : '<%=submenu.getMenuname().toString()%>',
    width : '100%',
    listeners : {
    click : addPanel
    }
    })
                     <%
                     if((ids+1)<size )
                     {
                     ids++;
                     %>,<%}
                     }
                    }
                    %>
    ]
                });
    <%
    }
    %>
                var accordion = new Ext.Panel({
                    region:'west',
                    title: '菜单',
                    split: true,
                     width: 200,
                    minSize: 175,
                    maxSize: 400,
                    collapsible: true,
                    margins: '0 0 0 5',
                    margins:'5 0 5 5',
                    split:true,
                    width: 210,
                    layout:'accordion',
                    items: [
                     <% 
                    for(int i=0;i<list.size();i++){
                     if((i+1)<list.size()){
                     %>
                    
                     item<%= i%>,
                    
                     <%}
                     if((i+1)==list.size()){
                     %>
                    
                     item<%= i%>
                    
                     <%}
                    }
                    %>                
                    ]
                });
                
                
                var tabPanel = new Ext.TabPanel( {
    region : 'center',
    enableTabScroll : true,
    deferredRender : false,
    activeTab : 0,
    items : [ { title : 'index', //html : 'aaaaaa'
    autoLoad : 'Category_add.jsp'
    } ]
    });
                var viewport = new Ext.Viewport({
                    layout:'border',
                   items : [ accordion, tabPanel ]
                });
            });
      </script>
      <body>
      <span></span>
       <div id="grid-example" style="width:100%;height: 650px;" ></div>
      </body>
    </html>
    Menu 是父菜单表,submenu 是子菜单表  设计很扯蛋,而且用jsp小脚本,这些就不要看了吧。 主要看怎么读出来的。qq303579750