我定义了一个数组,数组有值;
<% int[] id; ......
%>
之后用到的时候出现了奇怪的情况:
<% ....
   for(int i = 0; i < id.length; i++){
      out.println(" <tr align=\"center\"> ");
      out.println(" <td><strong> " + id[i] + " </strong></td> ");
      out.println("</tr>");
   }
....
%>
这个时候会出错;换成下面的就会正确显示:
<% ....
   for(int i = 0; i < id.length; i++){
      out.println(" <tr align=\"center\"> ");
      out.println(" <td><strong> " + id[1] + " </strong></td> ");
      out.println("</tr>");
   }
....
%>
请问这是什么原因?我要怎么样才可以像java一样在循环体里把id数组全部输出?

解决方案 »

  1.   

    Linux+Oracle+Java:87923477 技术是需要探讨的。希望大家支持我
      

  2.   

    id单独定义在<%%>中被认为是局部变量,在后面两个<%%>,相当于两个方法,调用的时候根本就取不到值,你放到Session中试试就知道了。
      

  3.   


    那么,为什么
    <% ....
      for(int i = 0; i < id.length; i++){
          out.println(" <tr align=\"center\"> ");
          out.println(" <td> <strong> " + id[1] + " </strong> </td> ");
          out.println(" </tr>");
      }
    ....
    %> 
    就可以显示id[1]的值呢?
      

  4.   

    楼上说法有道理。
    也可以换成定义数组的写成
    <%! ...... %>
      

  5.   

    错误信息如下:(把数组id[]换成MatchOrder[]就是了.)type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /Pages/scoreBoard.jsp:105102:    } else {
    103:    out.println(" <tr align=\"center\"> ");
    104:    }
    105:    out.println(" <td><strong> " + MatchOrder[i]
    106:    + " </strong></td> ");
    107:    out.println(" <td><strong> " + "--"
    108:    + " </strong></td> ");
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    com.southgis.roboson.servlet.MatchOrderServlet.doPost(MatchOrderServlet.java:57)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    com.southgis.roboson.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:39)
    root cause java.lang.ArrayIndexOutOfBoundsException: 6
    org.apache.jsp.Pages.scoreBoard_jsp._jspService(scoreBoard_jsp.java:158)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    com.southgis.roboson.servlet.MatchOrderServlet.doPost(MatchOrderServlet.java:57)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    com.southgis.roboson.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:39)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.
      

  6.   

    ArrayIndexOutOfBoundsException: 6 下标越界了。LZ 输出id 长度是多少, 循环里面又循环了多少次就明白了。
      

  7.   

    郁闷!!!原来是ArrayIndexOutOfBoundsException!!
    数组超界了!!谢谢各位关注,问题解决了!!