在线求救!树状导航菜单显示问题,急!!!

dao167 2008-08-24 11:01:09
有这样的一个树状菜单,菜单项是写死的,每增加一项JS这样写 d,add('1','系统管理',‘0’)即d.add('id','name','parmentid');parmentid为父id。
现在我要改成菜单项数据是从数据库表读取的,我的项目是ssh构架的,返回一个对象集合lanmus,每个对象lanmu有id.name,parmentid属性,问怎么把这些菜单项传给js的d.add()方法呢?使得有多少项数据就调用多少次d.add()方法。
...全文
222 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sd5816690 2008-08-25
  • 打赏
  • 举报
回复
差点就错了,上面的代码应该是:
<bean:write name="lanmu" property="id"/>

我居然用 lanmu.id ,汗。。。
sxn19811006 2008-08-24
  • 打赏
  • 举报
回复
初学者学习
sd5816690 2008-08-24
  • 打赏
  • 举报
回复
在javascript中加入下面的代码


<logic:iterate id="lanmu" name="lanmus">
d.add('<bean:write name="lanmu.id"/>','<bean:write name="lanmu.name"/>','<bean:write name="lanmu.parmentid"/>');
</logic:iterate>
suncheng_hong 2008-08-24
  • 打赏
  • 举报
回复
dtree
dao167 2008-08-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 geekwang 的回复:]
应该是jsp中套js的代码,比如
<%
out.println( "d.add(0,-1, '系统管理后台 '); ");
for(int i=0;i <list.size();i++){
Menu menu = (Menu)list.get(i);
String temp = "d.add( "+menu.getId()+ ", "+menu.getPid()+ ", ' "+menu.getMenuName().trim()+ " ', ' "+menu.getMenuUrl().trim()+ " ', ' "+menu.getMenuInfo().trim()+ " ', 'main '); ";
}
%>
[/Quote]
你的JS代码在哪?
dao167 2008-08-24
  • 打赏
  • 举报
回复
七楼的方法可以试下,有没有更好的方法呢?
geekwang 2008-08-24
  • 打赏
  • 举报
回复
应该是jsp中套js的代码,比如
<%
out.println("d.add(0,-1,'系统管理后台');");
for(int i=0;i<list.size();i++){
Menu menu = (Menu)list.get(i);
String temp = "d.add("+menu.getId()+","+menu.getPid()+",'"+menu.getMenuName().trim()+"','"+menu.getMenuUrl().trim()+"','"+menu.getMenuInfo().trim()+"','main');";
}
%>
sd5816690 2008-08-24
  • 打赏
  • 举报
回复
保证上面的代码可以运行,做了一个测试
一个是 JSP 代码,一个是IE中看到的 HTML 代码

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
<html:base />

<title>index.jsp</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>

<body>
<%
List lanmus = new ArrayList();
lanmus.add("111");
lanmus.add("222");
lanmus.add("333");

pageContext.setAttribute("lanmus",lanmus);
%>
<script type="text/javascript">
<logic:iterate id="lanmu" name="lanmus">
alert("<bean:write name="lanmu"/>");
</logic:iterate>
</script>
</body>
</html:html>




而生成的HTML代码如下:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="zh-CN">
<head>
<base href="http://localhost:8080/aop2/index.jsp">

<title>index.jsp</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>

<body>
<script type="text/javascript">

alert("111");

alert("222");

alert("333");

</script>
</body>
</html>
sword_88 2008-08-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sd5816690 的回复:]
最外面套一个 <script> 就行了

<script>
<logic:iterate id="lanmu" name="lanmus">
d.add(' <bean:write name="lanmu.id"/>',' <bean:write name="lanmu.name"/>',' <bean:write name="lanmu.parmentid"/>');
</logic:iterate>
</script>
[/Quote]


楼主,上面程序可以吗?
dangerous!!
sd5816690 2008-08-24
  • 打赏
  • 举报
回复
最外面套一个 <script> 就行了

<script>
<logic:iterate id="lanmu" name="lanmus">
d.add('<bean:write name="lanmu.id"/>','<bean:write name="lanmu.name"/>','<bean:write name="lanmu.parmentid"/>');
</logic:iterate>
</script>
dao167 2008-08-24
  • 打赏
  • 举报
回复
这样不行呀?d.add()是JS的方法。在这怎么能引用呢?

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧