小弟一个问题纠结了三天了

第一次知道树,并去编写,刚开始树中都是写死的,倒觉得挺简单的,后来同事让我在其中的一个菜单添加一个子树,要求这些子树都是动态从数据库中获取,我现在纠结的是如何能获得后台action的list表呢,在jsp页面中我不知道该如何处理,我用的是jsp,代码如下

d = new dTree('d');
            d.add(0,-1,'监控中心');

            d.add(1,0,'业务');
            d.add(2,0,'系统');

            d.add(3,1,'监控视图');
            d.add(4,1,'预警统计');
            d.add(5,1,'响应中心');
        //就是在监控视图下面动态加入子菜单,从数据库中获取的(BizAppSystem  )           <%
                    List list=(ArrayList)request.getAttribute("list");
                    for(int i=0;i<list.size();i++){%>
                    d.add(<%=((BizAppSystem) (list.get(i))).getId().intValue() %>,0,'<%=((BizAppSystem) (list.get(i))).getAppName()%>');
                    <%}%>


            d.add(6,3,'业务系统监控全景图',"javascript:openView('/sysappsafe/appSystemWarningView.html')");
            d.add(7,3,'仿真终端运行全景图',"javascript:openView('/sysappsafe/terminalWarningView.html')");


            d.add(8,4,'按客户统计预警','/sysappsafe/searchEventView.html','','I2');

            d.add(9,5,'事件查询','/sysappsafe/waitEventManage.html?type=0','','I2');
            d.add(10,5,'事件监控','/sysappsafe/instantResult.html?type=0','','I2');
            d.add(11,5,'事件全景图','javascript:openmonitor()','','I2');
            d.add(12,5,'消息中心','javascript:openmonitor()');

            d.add(13,2,'主机','/sysappsafe/waitEventManage.html?type=0','','I2');
            d.add(14,2,'网络设备','/sysappsafe/instantResult.html?type=0','','I2');
            d.add(15,2,'安全设备','javascript:openmonitor()','','I2');
            d.add(16,2,'存储设备','javascript:openmonitor()');
            d.add(17,2,'设备配置','/sysappsafe/waitEventManage.html?type=0','','I2');
            d.add(18,2,'链路性能','/sysappsafe/instantResult.html?type=0','','I2');
            d.add(19,2,'数据库','javascript:openmonitor()','','I2');
            d.add(20,2,'中间件','javascript:openmonitor()');
            d.add(21,2,'服务','javascript:openmonitor()');

            d.add(22,13,'Windows','/sysappsafe/waitEventManage.html?type=0','','I2');
            d.add(23,13,'Linux','/sysappsafe/instantResult.html?type=0','','I2');
            d.add(24,13,'Aix','javascript:openmonitor()','','I2');
            d.add(25,13,'Hpux','javascript:openmonitor()');
            d.add(26,13,'Solaris','javascript:openmonitor()');

            d.add(27,14,'二层交换机','/sysappsafe/instantResult.html?type=0','','I2');
            d.add(28,14,'三层交换机','javascript:openmonitor()','','I2');
            d.add(29,14,'路由器','javascript:openmonitor()');
            d.add(30,14,'其他','javascript:openmonitor()');

            d.add(31,19,'MySQL','/sysappsafe/waitEventManage.html?type=0','','I2');
            d.add(32,19,'Oracle','/sysappsafe/instantResult.html?type=0','','I2');
            d.add(33,19,'SQL Server','javascript:openmonitor()','','I2');
            d.add(34,19,'Sybase','javascript:openmonitor()');
            d.add(35,19,'DB2','javascript:openmonitor()');

            d.add(36,20,'WebSphere','/sysappsafe/waitEventManage.html?type=0','','I2');
            d.add(37,20,'WebLogic','/sysappsafe/instantResult.html?type=0','','I2');
            d.add(38,20,'Tomcat','javascript:openmonitor()','','I2');
            d.add(39,20,'Apusic','javascript:openmonitor()');
            d.add(40,20,'WebSphereMQ','javascript:openmonitor()');

            d.add(41,21,'Web服务','/sysappsafe/instantResult.html?type=0','','I2');
            d.add(42,21,'邮件服务','javascript:openmonitor()','','I2');
            d.add(43,21,'其他服务','javascript:openmonitor()');
            d.add(44,21,'网页监控','javascript:openmonitor()');

            document.write(d);
        </script>

2个回答

看你用的是dTree,只有看看里面有没有类似遍历方法了,如果没有只有用类似jquery的框架自己查询生成的dom,然后做具体查询了,如果你研究一下jquery的查询方式,应该有所收获。
你这里提到的javascript的list,在里面就体现为各种节点的集合。

一种方法可以直接在jsp页面上写获取数据库数据的代码,就像一般编写java程序一样
一种方法,进入这个页面之前,调用一个初始化方法,在action里面做数据操作处理,然后设置request.attribute,跳转到这个页面
还有就是用ajax动态方法,原理一样。
不知道你是不是问这个

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐