无法使用c:foreach(JSP / JSTL)迭代ArrayList

时间:2017-10-11 07:08:51

标签: java jsp arraylist jstl el

所以我从会话中得到StudentBeans的ArrayList,我想遍历每个StudentBean并获取值,但由于某种原因,ArrayList的元素没有存储在变量因为我只得到一个0 arg构造函数StudentBean。你能告诉我我的错误在哪里吗?

    <jsp:useBean
        id="list"
        class="java.util.ArrayList"
        type="java.util.ArrayList"
        scope="session">
    </jsp:useBean>

    <jsp:useBean
        id="student"
        class="com.dheri.parteek.beans.StudentBean"
        type="com.dheri.parteek.beans.StudentBean"
        scope="page">
    </jsp:useBean>

    <table>
        <tr>
            <th>#</th>
            <th>Name</th>
            <th>ID</th>
            <th>Grade</th>
        </tr>
        <c:forEach items="${list}" var="student"> 

            <tr>
                <td>
                    x
                </td>
                <td>
                    ${student.name}
                </td>
                <td>
                    ${student.id}
                </td>
                <td>
                    ${student.grade}
                </td>
            </tr>

        </table>

    </c:forEach>

2 个答案:

答案 0 :(得分:3)

抱歉,我无法发表评论。

您是否已将核心标记库包含在JSP文件中?

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

可能因为这个你的变量没有存储。

答案 1 :(得分:0)

正如你所说我有一个servlet来创建ArrayList并将其存储在会话中让我们假设会话属性被调用sList

然后在您的JSP中,您只需要

<c:forEach items='${sList}' var='student'>
        <tr>
            <td>
                x
            </td>
            <td>
                ${student.name}
            </td>
            <td>
                ${student.id}
            </td>
            <td>
                ${student.grade}
            </td>
        </tr>
</c:forEach>