有这样一段JS代码:var zNodes =[
{ name:"手机", ename:"Mobile", open:true,
nodes: [
{ name:"诺基亚", ename:"Nokia", nocheck:true,
nodes: [
{ name:"C6(音乐版)", ename:"C6(Music)"},
{ name:"X6(导航版)", ename:"X6(GPS)"},
{ name:"5230(世博版)", ename:"5230(SB)"},
{ name:"N97mini", ename:"N97mini"}
]},
{ name:"三星", ename:"Samsung", nocheck:true,
nodes: [
{ name:"I9000(联通版)", ename:"I9000(Unicom)"},
{ name:"I9000(移动版)", ename:"I9000(China Mobile)"},
{ name:"Galaxy Naos", ename:"Galaxy Naos"},
{ name:"Fascinate", ename:"Fascinate"}
]}
       ];
其中的name我想是从数据库查上来放入一个List里,然后通过servlet的setArritbute()把list传过去,再在上面这段JS上面遍历使用,和显示。     然后…… 没办法了,明显servlet传不到一个JS文件…… 大侠们,肿么办啊?

解决方案 »

  1.   

    1. 在jsp页面
    <%
      给 var zNodes  赋值
    %>2. 掉用外部js,js文件里再去取zNodes 
      

  2.   

    up
    用dwr或jquery的ajax去搞之
      

  3.   

    js代码放在jsp文件里面也是一样啊,然后jsp文件里面取值<%=%>就可以取到。
    其他地方要用这个js代码的就把该jsp文件include进去就OK了啊
      

  4.   

    遍历list
    <script>
    var arr=new Array();
    </script><%
      List l=request.getAttribute("list");
      for(int i=0;i<l.length;i++){ 
      print.write("<script>arr["+i+"]="+l.get(i).getName()+"</script>");

    %>
    <script>
    ...遍历arr   ,生成你要的对象  如果email也是后台出来,多生成个js对象即可
    </script>
      

  5.   

    +1
    lz用的jquery的ztree吧?可以好看看ztree文档
      

  6.   

    servlet:
    request.setAttribute("data", "手机");temp.jsp:
    <% String data = request.getAttribute("data") %>
    <html>
    <head></head>
    <body>
    <script>
    alert('<%=data %>');
    var zNodes =[
        { name:"<%=data %>", ename:"Mobile", open:true,
            nodes: [
                { name:"诺基亚", ename:"Nokia", nocheck:true,
                    nodes: [
                            { name:"C6(音乐版)", ename:"C6(Music)"},
                            { name:"X6(导航版)", ename:"X6(GPS)"},
                            { name:"5230(世博版)", ename:"5230(SB)"},
                            { name:"N97mini", ename:"N97mini"}
                        ]},
                { name:"三星", ename:"Samsung", nocheck:true,
                    nodes: [
                            { name:"I9000(联通版)", ename:"I9000(Unicom)"},
                            { name:"I9000(移动版)", ename:"I9000(China Mobile)"},
                            { name:"Galaxy Naos", ename:"Galaxy Naos"},
                            { name:"Fascinate", ename:"Fascinate"}
                        ]}
           ];
    </script>
    </body>
    </html>
      

  7.   

    String name = (String)session.getAttribute("name");
    var name = "<%=name%>";
    var zNodes =[
        { name:name, ename:"Mobile", open:true,
            nodes: [
                { name:"诺基亚", ename:"Nokia", nocheck:true,
                    nodes: [
                            { name:"C6(音乐版)", ename:"C6(Music)"},
                            { name:"X6(导航版)", ename:"X6(GPS)"},
                            { name:"5230(世博版)", ename:"5230(SB)"},
                            { name:"N97mini", ename:"N97mini"}
                        ]},
                { name:"三星", ename:"Samsung", nocheck:true,
                    nodes: [
                            { name:"I9000(联通版)", ename:"I9000(Unicom)"},
                            { name:"I9000(移动版)", ename:"I9000(China Mobile)"},
                            { name:"Galaxy Naos", ename:"Galaxy Naos"},
                            { name:"Fascinate", ename:"Fascinate"}
                        ]}
           ];java 是可以把变量传给javascript的