我的代码如下:
public static void bulidTree(){
...
StringBuffer src=new StringBuffer()
  scr.append("var treeNode "+mymap.get("ID").toString+" = new TreeNode('"+ mymap.get("TreeNodeName") +"');");
  scr.append("tree.add(treeNode "+ mymap.get("ID").toString +");");
  out.print(scr.toString());
...
}实际上我是在构建一棵树时的循环,在jsp中有脚本
<script>
...
   <%=bulidTree()%>
...
</script>
我想在bulidTree()中生成一段脚本如:
var treeNodenode123=new TreeNode('我的树节点');
tree.add(treeNodenode123);
生成以上代码后out.print到脚本中,使页面可以动态的遍历生成树,以上的脚本段能动态生成了,在System.out.print(scr.toString());中可以看到,但当我out.print(scr.toString())时就总是报什么不可转换的字符,等等错误,不知道怎么做才能将代码段加到页面中组成一段脚本,请各位大虾帮帮,星期一要脚货了,否则饭碗不保,跪谢了!!!
再线等!

解决方案 »

  1.   

    我发现几个问题:
    1) 
    JSP页面的 <script> 改为 <script language="JScript">
    2)
    JSP页面中把其中的...去掉。
    3)
    在java文件中buildTree()的返回值是String的才对,而你是void肯定不对拉。
    4)
    在java文件中确保你加的script是正确的。如果有" '等,需要做\转换
    5)
    在java文件中的toString改成toString()
    6)
    确保你在mymap.get("ID")能取出不为null的东西,个人建议在toString()之前先要检查取得结果是否为null,否则会throw NullPointerException以下是我写的,请参考
    //Test.java
    package com.pss.struts.util;import java.util.HashMap;public class Test {
    public static String getString() {
    HashMap mymap = new HashMap();
    mymap.put("ID","K021");
    mymap.put("TreeNodeName","Goverment");
    StringBuffer src = new StringBuffer();
    src.append("var treeNode " + mymap.get("ID").toString()
    + " = new TreeNode('" + mymap.get("TreeNodeName") + "');");
    src.append("tree.add(treeNode " + mymap.get("ID").toString() + ");");
    return src.toString();
    }
    }//
    <%@page contentType="text/html; charset=GBK"%>
    <%@ page import="com.pss.struts.util.Test"%>
    <script language="JScript">
       <%=Test.getString()%>
    </script><html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Test of connection pool</title>
    </head>
    <body>
    I love moeney,i need a job.
    </body>
    </html>