2017-07-31 101 views
0
<table border="0"> 
     <tr> 
      <th>ID</th> 
      <th>Date</th> 
      <th>To Account</th> 
      <th>From Account</th> 
      <th>Amount</th> 
      <th>Notes</th> 
     </tr> 

     <% ArrayList list = (ArrayList) request.getAttribute("data")%> 

     <% for(int i=0;i<list.size();i++){%> 
     <tr> 
      <td> <%= list.get(i)%></td> 
     </tr> 
     <% } %> 
    </table> 

我在netbeans IDE中的for循环行上出现错误。这是暗示我需要一个“;”某处,但我确实拥有它正确不是吗?for循环在JSP中不工作

发布后,我发现我在指令jsp标记中缺少分号。但现在我收到一个错误,表明页面缺少请求对象?怎么会这样?我认为这是一个隐含的对象?

回答

1

语句都必须以;结束,用同样的方法是在Java中,因为他们确实是Java语句。 JSP是越来越翻译和容器编译成Java代码(Servlet的)(Tomcat)的

正确的形式是<% ArrayList list = (ArrayList) request.getAttribute("data"); %>

只是为了信息,在JSP,声明可以采取三种不同的形式:

<% int a = 1; %>  // variable created for each HTTP request 
<%! int b = 2; %>  // variable created for each servlet instance 
<%! static c = 3; %> // static variable shared by all instances of servlet 

在任何形式下,它必须关闭;

请注意,另一方面,表达式<%= %>不是Java状态nt,所以相应地,表达块<%= ... %>不是最后不需要分号。

还要确保你已经默认JSP页面上JSP页面的顶部增加进口对ArrayList的,因为只有到java.lang.* package

<%@ page import="java.util.ArrayList"%> 
访问
0

您在for循环行上收到错误,因为您没有用分号关闭前面的语句。这一个:

<% ArrayList list = (ArrayList) request.getAttribute("data")%> 

应当在年底有一个分号,像这样:{}

<% ArrayList list = (ArrayList) request.getAttribute("data");%>