1.在js中:
var content ={
//显示文本:对应链接
"sina":"http://www.sina.com.cn",
"csdn":"http://www.csdn.net",
"javaworld":"http://www.javaworld.com"
}
里面的内容我现在要使它在java类中作为一个map,或者是一个list然后传入到脚本中
A:java做的少:感觉只是用它的标准输出的,类似于PHP:echo "<script>var arr = new Array(10);<script>";2.既然做为一个map或者是一个list传入,那么就是一个不可知的长度了。所以这里就要考虑我的这个VO对象怎么设计:)A:
/*
  "sina":"http://www.sina.com.cn",
"csdn":"http://www.csdn.net",
"javaworld":"http://www.javaworld.com"
*/
sina,csdn,等都是对象的属性,可能在生成时尽可能避免重名;3.如果我的这个代码还要考虑以后一个大对象的形成,比如一个对象中还有一个VO的形式,怎么来做
A:还是采用第1个问题的方法,用java标准输出,你要的数据格式;

解决方案 »

  1.   

    不明白你的意思,你是说js还是java
      

  2.   

    1、
    var content ={
    //这里同java程序循环打印要显示的文本,注意格式
    }2、如果我的这个代码还要考虑以后一个大对象的形成,....
    建议使用json
    json支持任何可用于web编程的语言
    json可以将web编程的语言中的变量、数组、对象转换成js可接受的格式
    json可以将js传递过来的json格式的数据转换成web编程的语言可接受的变量、数组、对象
      

  3.   

    java里直接可以传递list对象到jsp页面上.
    而且长度怎么会不知道呢?? list有size()方法,数组有length属性List mylist = new ArrayList();
    //这里给mylist赋值
    mylist.add("1111");
    mylist.add("2222");
    request.setAttribute("mylist",mylist);然后在jsp页面上接收
    <%
    List mylist1 = (List)request.getAttribute("mylist");
    //我的习惯,在页面里先搞成数组
    String[] myString = (String[])mylist1.toArray(new String[0]);
    %>然后再搞到JS里面
    <%
    for(int i=0;i<myString.length;i++)
    {
    %>
      string1[<%=i%>] = <%=myString[i]%>;
    <%}%>OK了
      

  4.   

    先谢谢楼上的几位
    经过昨天晚上和早上的努力,找到解决方案了。
    确实使用JSON很方便
    而且在Tapestry中有标签的识别
    <script>
         <span jwcid="@Insert" value="ognl:context">
    </script>
    然后在JAVA类中写入类似MAP
    其实这里的关键问题还是要把list或者说对象怎么变成JS中的{"";""}这样的
    所以这里就用到JSON了,谢谢大家