for循环在JSP中不起作用

时间:2017-07-31 00:20:00

标签: jsp for-loop

<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循环行出错了。这表明我需要一个&#34 ;;&#34;在某个地方,但我确实让它纠正了,不是吗?

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

2 个答案:

答案 0 :(得分:1)

{}中的语句必须以;结尾,就像在Java中一样,因为它们确实是Java语句。 JSP正在被容器(Tomcat)翻译并编译成Java代码(Servlet)

正确的表格是<% 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语句,因此表达式块<%= ... %> 不会最后不需要分号。

另请确保您已在JSP页面顶部添加了对ArrayList的导入,因为默认情况下JSP页面只能访问java.lang.* package

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

答案 1 :(得分:0)

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

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

最后应该有一个分号,如下所示:

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