requtst.setAttribute("train",trains);
trains是list,里面放三个Train实体,Train有number,speed等属性怎么在函数中遍历出每个trains,并获取出属性值,如speed=?
<script Language="javascript">
 function getValue
 {
   .........
   document.write("<%=request.getAttribute("traintrack")%>")  //只能获取到一个字符串 }
</script>

解决方案 »

  1.   

      
      试试,我也不知道行不行。
    <script Language="javascript">
     function getValue
     {
       .........
      // document.write("<%=request.getAttribute("traintrack")%>")  //只能获取到一个字符串
        var array = ${requestScope.trantrack};
       alert(array.length);
        for(var i in array){
              alert(array[i]);
        }
     }
    </script>
      

  2.   

    用JSON格式返回给JS会好处理一点吧。。
      

  3.   


    <script Language="javascript">
     function getValue() // 加个 ()
     {
       .........
      // document.write("<%=request.getAttribute("traintrack")%>")  //只能获取到一个字符串
        var array = ${requestScope.trantrack};
       alert(array.length);
        for(var i in array){
              alert(array[i]);
        }
     }
    </script>
      

  4.   

    自己写的没找到
    网上抄的,自己多baidu啊function GetUrlParms()    
    {
         var args=new Object();   
         var query=location.search.substring(1);//获取查询串   
         var pairs=query.split("&");//在逗号处断开   
         for(var    i=0;i<pairs.length;i++)   
         {   
             var pos=pairs[i].indexOf('=');//查找name=value   
                if(pos==-1)   continue;//如果没有找到就跳过   
                 var argname=pairs[i].substring(0,pos);//提取name   
                var value=pairs[i].substring(pos+1);//提取value   
                args[argname]=unescape(value);//存为属性   
        }
         return args;
    }
      

  5.   

    document.write("<%=request.getAttribute("traintrack")%>")  //只能获取到一个字符串你的traintrack 是一个什么?  数组 List 对象??  每一个的处理方式都不一样。
    1.对象  如果是String var v = "<%=request.getAttribute("traintrack")%>";如果是定义的对象  例如: class A{private String a1;private int a2;//get set方法自己写吧。} 那你可以:
    function a(a1,b1){
    this.a1 =a1;
    this.b1 = b1;
    }
    var v = new a("<%=(A)(request.getAttribute("traintrack")).getA1()%>","<%=(A)(request.getAttribute("traintrack")).getA2()%>")2 数组 List 方法差不多。都是遍历数组或List, 在JS定义相同结构的数据存储单元,将JAVA的数年转为JS的数据。
    注意: JAVA---> JS  都是通过字符串进行转化的。
    不过数组有好的转化方法, 就是在后台把数据拼成[1,2,3] 这样的形式。在页面就可以直接这样写了: var v = request.getAttribute("traintrack");最后建议LZ用JSTL, 直接在JSp中用JAVA是不好的行为。
      

  6.   

    document.write("<%=request.getAttribute("traintrack")%>")  //只能获取到一个字符串你的traintrack 是一个什么?  数组 List 对象??  每一个的处理方式都不一样。
    1.对象  如果是String var v = "<%=request.getAttribute("traintrack")%>";如果是定义的对象  例如: class A{private String a1;private int a2;//get set方法自己写吧。} 那你可以:
    function a(a1,b1){
    this.a1 =a1;
    this.b1 = b1;
    }
    var v = new a("<%=(A)(request.getAttribute("traintrack")).getA1()%>","<%=(A)(request.getAttribute("traintrack")).getA2()%>")2 数组 List 方法差不多。都是遍历数组或List, 在JS定义相同结构的数据存储单元,将JAVA的数年转为JS的数据。
    注意: JAVA---> JS  都是通过字符串进行转化的。
    不过数组有好的转化方法, 就是在后台把数据拼成[1,2,3] 这样的形式。在页面就可以直接这样写了: var v = request.getAttribute("traintrack");最后建议LZ用JSTL, 直接在JSp中用JAVA是不好的行为。
      

  7.   

    requtst.setAttribute("train",trains); 
    traintrack就那个train,里面的是多个Train类得List,
    想取到里面每个Train类得属性
      

  8.   


     测试通过了index.jsp<%@ page language="java" import="java.util.*,com.servlet.bean" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      
      <body>    <script type="text/javascript">       
        <%
            ArrayList list = (ArrayList)request.getAttribute("list");
            for(int i=0;i<list.size();i++){
                bean Bean = (bean)list.get(i);
         %>
           var name = '<%=Bean.getName()%>'
           alert(name);
         <%   
            }
         %>
        </script>
      </body>
    </html>
    servlet.javapackage com.servlet;import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class servlet extends HttpServlet {
    public servlet() {
    super();
    } /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
    } public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    bean Bean = new bean();
    Bean.setName("liubin");
    Bean.setPwd("123");

    bean Bean2 = new bean();
    Bean2.setName("aaa");
    Bean2.setPwd("456");

    bean Bean3 = new bean();
    Bean3.setName("bbb");
    Bean3.setPwd("789");

    ArrayList list = new ArrayList();
    list.add(Bean);
    list.add(Bean2);
    list.add(Bean3);

    request.setAttribute("list", list);

    request.getRequestDispatcher("../index.jsp").forward(request, response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doGet(request ,response);
    }
    public void init() throws ServletException {
    // Put your code here
    }}
      

  9.   

    LZ 的代码都出来了, 没有什么好说的了, 不过还是建议用JSTL。
      

  10.   

    多谢了,上面代码正确,但
    ArrayList list = (ArrayList)request.getAttribute("list");
    这句我想放在
    function()
    {
    }中,老出错,怎么写,格式不对吗?
      

  11.   

    将代码放如 function(){} 里面,仔细看看啦。
    <%@ page language="java" import="java.util.*,com.servlet.bean" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      
      <body>    <script type="text/javascript">      
         function init(){ 
        <%
            ArrayList list = (ArrayList)request.getAttribute("list");
            for(int i=0;i<list.size();i++){
                bean Bean = (bean)list.get(i);
         %>
           var name = '<%=Bean.getName()%>'
           alert(name);
         <%   
            }
         %>
         }
         
         init();
        </script>
      </body>
    </html>
      

  12.   

    function init(){ 
    函数里可以用<%%>标签吗?
    那是html标签吧
    有错啊
      

  13.   

    我上面代码有错啊,那个代码不在function里面就没错
    愁~~
      

  14.   

    <script language="javaScript">
    Request = {
    QueryString : function(item){
    var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)","i"));
    return svalue ? svalue[1] : svalue;
    }
    }
    Request.QueryString("参数")
    </script>
      

  15.   

    72行就是我页面上的
    ArrayList list = (ArrayList)request.getAttribute("traintrack");
      

  16.   


      把 function 括号看仔细啊,
        <script type="text/javascript">         
         function init(){ 
           <%
            ArrayList list = (ArrayList)request.getAttribute("list");
            for(int i=0;i<list.size();i++){
                bean Bean = (bean)list.get(i);
         %>
              var name = '<%=Bean.getName()%>'
              alert(name);
         <%       
            }
         %>
         }
         
         init();
        </script>
      

  17.   

    代码几乎是复制你的function lineTrack(x3,y3,x4,y4)       //72行
    {
    document.write("---------");
           <%
            ArrayList list = (ArrayList)request.getAttribute("traintrack");
            for(int i=0;i<list.size();i++){         //80行
                Train Bean = (Train)list.get(i);
         %>
              var name = '<%=Bean.getNumber()%>'
              document.write(name);
         <%       
            }
         %>
        
      
    }
    错误:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /traintrack1.jsp at line 80
    77: 
    78:        <%
    79:         ArrayList list = (ArrayList)request.getAttribute("traintrack");
    80:         for(int i=0;i<list.size();i++){
    81:             Train Bean = (Train)list.get(i);
    82:      %>
    83:           var name = '<%=Bean.getNumber()%>' org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:555)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause java.lang.NullPointerException
    org.apache.jsp.traintrack1_jsp._jspService(traintrack1_jsp.java:148)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:390)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.2 logs.