2017-07-31 98 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");%>