你这是参考别人的程序吧,再把相关的内容前前后后看一看。
我不懂tree.帮你顶。
self是什么:document?
self.parent是什么:windows?
感觉有问题。建议你到js版,针对var tree=self.parent.tree;"问一下。

解决方案 »

  1.   

    转帖看很多人要求目录树,我的代码可以满足大多数要求,UP有分
    http://community.csdn.net/Expert/topic/3190/3190905.xml?temp=.8794672
      

  2.   

    我试过了,this也不行,大虾们帮忙啊!!!
      

  3.   

    看楼主的意思,主要是在得不到tree这个变量,那么把parent换成parent实施。如果不行,明天又控了,我来实施。
      

  4.   

    我新发了一个贴子,解决再jsp中应用parent中的变量的问题。
    如楼主所言,引用确实有问题。
    我把self.parent.tree换成window.tree可以得到。
    楼主试试刊。
    肯定是我党引用的方式有问题。
    期盼高人。
      

  5.   

    请问 haofengfu(风斧) 用window.tree时在JSP中是否要引用什么特定的包,我在上面的JSP代码中更改过来后,在WINDOW打"."后未出现TREE的属性,请问该如何去解决,谢谢!
      

  6.   

    window.parent.tree。即使没有提示也没有关系,因为这些东西是要到前台解释的,不是jsp的语法,是javascript的语法。
    顺便问一下,你用什么开发工具?我用jcreator.jb太慢。
      

  7.   

    我将上面JSP中的out.println("var tree=self.parent.tree;");这句话,换成out.println("var tree=window.parent.tree;");后还是无法生成,没用什么工具,只是编辑后,将所有资源放入TOMCAT中运行,在IE浏览运行时,显示不出树,且有脚本错误跟上面我提的一样
      

  8.   

    建议楼主先从静态的试验一下,比如src先不用jsp文件,暂时硬写进区,用了jsp文件后,暂时不从数据库里读,还是硬写,这样一步步隔离问题,得到故障出再那里。
    我实现了jsp文件从父窗口读取变量这样第一步工作(为此我发了一个贴子)。我对这方面的问题也不熟悉,这两天又频繁喝酒,状态狠差。
    高手怎么不理会这个贴子,我们是频繁的顶阿,无效。强烈建议楼主从最基本的开始调试。问题不一定出在jsp那里,我们要先学会html方式下如何设定iframe.以下是我试验读父窗口的代码(抬举他了,算不上什么代码)。
    html文件:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script>
    var aaa   ;
    aaa="hehe";
    </script>
    </head>
    <body>
      <iframe id="ifrLoad" src="tree_load.jsp "  nowrap="true"></iframe>
    </body>
    </html>
    jsp文件:
    tree_load.jsp:
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
    <%try
    {
    out.println("<script  >");  out.println("  if ( window.parent != null )");
      out.println("  {");
      out.println("      document.writeln('this window has a parent window');");
      out.println("      if ( window.parent.aaa != null )");
      out.println("      {");
      out.println("          document.writeln('parent window object aaa = ' + window.parent.aaa);");
      out.println("          document.writeln('<br>');");
      out.println("      }");
      out.println("      else ");
      out.println("      {");
      out.println("       alert('找不到变量,可奈何!!!');");
      out.println("      }");
      out.println("  }");
    out.println("</script>");
    }
    catch(Exception e)
    {
    System.out.println(e);
    }
    %></body>
    </html>
      

  9.   

    建议楼主先从静态的试验一下,比如src先不用jsp文件,暂时硬写进区,用了jsp文件后,暂时不从数据库里读,还是硬写,这样一步步隔离问题,得到故障出再那里。
    我实现了jsp文件从父窗口读取变量这样第一步工作(为此我发了一个贴子)。我对这方面的问题也不熟悉,这两天又频繁喝酒,状态狠差。
    高手怎么不理会这个贴子,我们是频繁的顶阿,无效。强烈建议楼主从最基本的开始调试。问题不一定出在jsp那里,我们要先学会html方式下如何设定iframe.以下是我试验读父窗口的代码(抬举他了,算不上什么代码)。
    html文件:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script>
    var aaa   ;//这个变量将要被jsp文件写到iframe中去。
    aaa="hehe";
    </script>
    </head>
    <body>
      <iframe id="ifrLoad" src="tree_load.jsp "  nowrap="true"></iframe>
    </body>
    </html>
    jsp文件:
    tree_load.jsp:
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
    <%try
    {
    out.println("<script  >");  out.println("  if ( window.parent != null )");
      out.println("  {");
      out.println("      document.writeln('this window has a parent window');");
      out.println("      if ( window.parent.aaa != null )");
      out.println("      {");
      out.println("          document.writeln('parent window object aaa = ' + window.parent.aaa);");
      out.println("          document.writeln('<br>');");
      out.println("      }");
      out.println("      else ");
      out.println("      {");
      out.println("       alert('找不到变量,可奈何!!!');");
      out.println("      }");
      out.println("  }");
    out.println("</script>");
    }
    catch(Exception e)
    {
    System.out.println(e);
    }
    %></body>
    </html>
      

  10.   


    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <%@ page import="java.io.*"%>
    <%@ page import="org.w3c.dom.*"%>
    <%@ page import="javax.xml.parsers.*"%>
    <%@ page import="java.util.*"%>
    <!--
    Statement stmt = null;
    ResultSet rs = null;
    Connection conn = null;
    try
    {
    String url="jdbc:odbc:book";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    conn = DriverManager.getConnection(url);
    rs = stmt.executeQuery("select logname from member");
    System.out.println("1111111111");
    }
    catch(SQLException sqle)
    {
    sqle.printStackTrace();
    }
    catch(ClassNotFoundException e)
    {
    e.printStackTrace();
    }--><SCRIPT language='JavaScript'> 
            function chkform1(){  
                var txid = document.tree.Trans.value;
                targetT(txid);
            }
            function chkform(btn){  
                document.tree.action = "transaction";
                document.tree.Trans.value = btn ;
                document.tree.submit();   
            }
    function targetT(txid)
    {
            var txidcode = "T"+txid;
    if(parent.main.document.DATAIN.MENU==null){
    alert("叫祅╰参!!!");
    return;
    }
    parent.main.document.DATAIN.MENU.value=txidcode;
    var s = parent.main.document.DATAIN.action;
    parent.main.document.DATAIN.action=s+"Menu";
    //parent.TXAREA.document.DATAIN.action="/NetBranch/GCSIcpMenu";
    parent.main.document.DATAIN.submit();
            parent.mainfrm.document.transinfo.submit();


    </SCRIPT>
    <html>
    <style>
    a:visited
    {
    text-decoration: none;
    color: #000000;
    cursor:default;
    }
    a:hover
    {
    text-decoration: none;
    color: blue;
    cursor:default;
    }
    a:link
    {
    text-decoration: none;
    color: #000000;
    cursor:default;
    }
    </style>
    <head>
    <title>JSP Page</title></head>
    <body>
    <script language="javascript" src="twins.js"></script>
    <form action="transaction"  name='tree'target='main'>
    <!--<script language="JavaScript" src="javascript/tree_radio.js"></script>-->
    <script language="JavaScript" src="tree.js"></script>
    <script language="JavaScript">
    <%
    File file=new File("d:/jbproject/eSubject/eSubject/dept.xml");
    try
    {
    if(!file.exists())
    {
    file.createNewFile();
    }
    }
        catch(Exception e)
    {
       e.printStackTrace();
        }
    String DEPTID=null;
    String DEPTNAME=null;
    String ROLEID=null;
    String ROLENAME=null;
    String PERSONID=null;
    String PERSONNAME=null;
    //String ID=null;
    //String name=null;
    //String desc=null;
    //String strID=null;
    //String subjectName=null;
    //String subjectID=null;
    //String gradeID = null;
    //String rubricID = null;
    String totalName=null;
    ArrayList ay=new ArrayList();
    NodeList nl,nlist,list,li,dept;
    int i,j,k,m;

    DocumentBuilderFactory fact=DocumentBuilderFactory.newInstance();
    DocumentBuilder builder=fact.newDocumentBuilder();
    Document doc=builder.parse(file);
       dept=doc.getElementsByTagName("TOTALNAME");
       for(int l=0;l<dept.getLength();l++)
       {
           Element deptNode=(Element)dept.item(l);
           totalName=deptNode.getAttribute("TOTALNAME");
       }
        %>
    function documentContextMenu()
    {
    return true;
    }
      document.oncontextmenu = documentContextMenu;
      foldersTree = gFld("<%=totalName%>","");
    <%
      

    nlist=doc.getElementsByTagName("DEPARTMENT");

    for(i=0;i<nlist.getLength();i++)
    {
    Element node=(Element)nlist.item(i);
        DEPTID=node.getAttribute("DEPTID");
    DEPTNAME=node.getAttribute("DEPTNAME");
    nl=node.getElementsByTagName("ROLE");
    if(nl.getLength()>0)
    {
    %>
    aaa<%=i%>= insFld(foldersTree, gFld("<%=DEPTNAME%>"));
    <%
    }
    else
    {
    %>
    //insDoc(foldersTree, gLnk(0, "<%=DEPTNAME%>","qq.jsp?<%=DEPTNAME%>"));
    insDoc(foldersTree,gFld("<%=DEPTNAME%>"));
    <%
    }


        for(j=0;j<nl.getLength();j++)
        {
    Element no=(Element)nl.item(j);
    ROLEID=no.getAttribute("ROLEID");
        ROLENAME=no.getAttribute("ROLENAME");
        list=no.getElementsByTagName("PERSON");
    if(list.getLength()>0)
        {
    %>
    aaa<%=i%><%=j%> = insFld(aaa<%=i%>, gFld("<%=ROLENAME%>"));
    <%
    }
    else
    {
    %>
    insDoc(aaa<%=i%>, gLnk(0, "<%=ROLENAME%>","qq.jsp?<%=ROLENAME%>"));
    <%
    }
    for(k=0;k<list.getLength();k++)
    {
    Element yes=(Element)list.item(k);
        PERSONID=yes.getAttribute("PERSONID");
    PERSONNAME=yes.getAttribute("PERSONNAME");
    li=yes.getElementsByTagName("grade");
    if(li.getLength()>0)
    {
    %>
    aaa<%=i%><%=j%><%=k%> = insFld(aaa<%=i%><%=j%>, gFld("<%=PERSONNAME%>"));
    <%
    }
    else
    {
    %>
    insDoc(aaa<%=i%><%=j%>, gLnk(0, "<%=PERSONNAME%>","qq.jsp?<%=PERSONNAME%>"));
    <%
    }
    /*for(m=0;m<li.getLength();m++)
    {
    Element now=(Element)li.item(m);
    gradeID=now.getAttribute("id");
    rubric=now.getElementsByTagName("rubric");
    if(rubric.getLength()>0)
    {
    %>
    aaa<%=i%><%=j%><%=k%><%=m%> = insFld(aaa<%=i%><%=j%><%=k%>, gFld("<%=gradeID%>"));
    <%
    }
    else
    {
    %>
    insDoc(aaa<%=i%><%=j%><%=k%>, gLnk(0, "<%=gradeID%>","qq.jsp?<%=gradeID%>"));
    <%
    }
    for(int l=0;l<rubric.getLength();l++)
    {
    Element know=(Element)rubric.item(l);
    rubricID = know.getFirstChild().getNodeValue();
    %>
    insDoc(aaa<%=i%><%=j%><%=k%><%=m%>, gLnk(0, "<%=rubricID%>","qq.jsp?<%=rubricID%>"));
    <%
    }
    }*/
    }
    }    
    }

     
    %>
    initializeDocument();
    </script>
    </form>
    </body>
    </html>
      

  11.   

    上面是关于读取XML文件生成树的代码.下面将数据库中的数据按一定的格式生成XML文件,一旦XML文件生成后,即可用上面的JSP读取XML生成树
      

  12.   

    package xmlBean;
    import java.sql.*;
    import javax.xml.parsers.*;
    import org.apache.xpath.*;
    import org.apache.crimson.tree.*;
    import javax.xml.transform.dom.*;
    import org.w3c.dom.*;
    import java.util.*;
    import javax.xml.transform.stream.*;
    import javax.xml.transform.*;
    import java.io.*;
    import java.util.*;
    public class BuildDeptXML
    {
    Connection conn=null;
    String sql;
    int i=0;
    ArrayList list=new ArrayList();
    File f=new File("dept.xml");
    Element totalname=null;
    Element department=null;
        Element role=null;
    Element person=null;
    Element know=null;
    String deptID="";
    String roleID="";
    boolean bool=false;
    boolean bool1=false;
    boolean bool2=false;
    public void BuildXml()
    {

    try
    {
    if(!f.exists())
    {
    f.createNewFile();
    }
        DocumentBuilderFactory fact=DocumentBuilderFactory.newInstance();
    DocumentBuilder builder=fact.newDocumentBuilder();
    Document doc=builder.newDocument();
        conn=DBConnection.getConnection();
    sql="select * from dept";
    Statement stm=conn.createStatement();
        ResultSet rs=stm.executeQuery(sql);
        totalname=doc.createElement("TOTALNAME");
        totalname.setAttribute("TOTALNAME","小强");
    while(rs.next())
    {
    deptID=rs.getString(1);
    department=doc.createElement("DEPARTMENT");
    totalname.appendChild(department);
    department.setAttribute("DEPTID",rs.getString(1));
    department.setAttribute("DEPTNAME",rs.getString(3));// sql="select * from teacher where deptid='"+rs.getString(1)+"'";
    // conn=DBConnection.getConnection();
    // stm=conn.createStatement();
    // ResultSet result=stm.executeQuery(sql);
    //
    // while(result.next())
    // {
        sql="select * from role";//where roleid='"+result.getString(3)+"'";
        conn=DBConnection.getConnection();
        stm=conn.createStatement();
        ResultSet rule=stm.executeQuery(sql);
     while(rule.next())
        {
              sql="select * from teacher where roleid='"+rule.getString(1)+"'and deptid='"+deptID+"'";
              conn=DBConnection.getConnection();
                 stm=conn.createStatement();
                 ResultSet teach=stm.executeQuery(sql);
                 if(teach.next())
                 {
              
              role=doc.createElement("ROLE");
              department.appendChild(role);
              role.setAttribute("ROLEID",rule.getString(1));
              role.setAttribute("ROLENAME",rule.getString(2));
              sql="select * from teacher where roleid='"+rule.getString(1)+"'and deptid='"+deptID+"'";
                 conn=DBConnection.getConnection();
                 stm=conn.createStatement();
                 ResultSet teacher=stm.executeQuery(sql);
                 while(teacher.next())
                 {
                  person=doc.createElement("PERSON");
                  role.appendChild(person);
                    person.setAttribute("PERSONID",teacher.getString(1));
                    person.setAttribute("PERSONNAME",teacher.getString(4));
                 }
               }
              
        }
    }
    doc.appendChild(totalname);
    // TransformerFactory tf=TransformerFactory.newInstance();
    //     Transformer tranformer=tf.newTransformer();
    //     DOMSource source=new DOMSource(doc);
    //
    //         Properties properties = tranformer.getOutputProperties(); 
    //         properties.setProperty(OutputKeys.ENCODING,"GB2312");
    //
    //         tranformer.setOutputProperties(properties);
    //         StreamResult re=new StreamResult(new FileOutputStream(f));
    //         tranformer.transform(source,re);
                ((XmlDocument)doc).write(new FileOutputStream(f));
        }
        catch(Exception e)
        {
         e.printStackTrace();
        }
     }
      

  13.   

    <--------------高手看过来! 能不能搞定这个?
    http://community.csdn.net/Expert/topic/3472/3472337.xml?temp=.1701624