在JSP中迭代数据库结果

时间:2013-03-18 12:43:39

标签: jsp jstl

情境:

我在类 DatabaseDAO 中有一个方法 gerRow(),它获取一些表行并将它们添加到类 Row 的对象中。

每个 Row 对象都会添加到 ArrayList getRow()方法返回该ArrayList。

问题:

我的问题是如何在JSP中迭代文本结果?我打算使用JSTL代码<c:out><c:ForEach>。我认为这是唯一的选择。我怎么能这样做?

出现困难:

我调用的方法返回一个ArrayList。 ArraList具有行的对象。然后我必须将该行中的每一列分开打印出来。

Row对象是Row类,它有Row.getColum1,Row.getColum2,Row.getColum3等等。

示例:

<jsp:useBean id="xxxxxxxxxxxx" class="xxxxxxxxxxxx" scope="request" />
<c:forEach var="xxxxxxxxxxxx" items="${xxxxxxxxxxxx}">
    <c:out value="${xxxxxxxxxxxx.xxxxxxxxxxxx}" />
    <c:out value="${xxxxxxxxxxxx.xxxxxxxxxxxx}" />
</c:forEach>

1 个答案:

答案 0 :(得分:1)

我猜你不知道x是什么。这称为expression language

您不需要此<jsp:useBean id="xxxxxxxxxxxx" class="xxxxxxxxxxxx" scope="request" />

表达式语言通常会转换为get方法,但您不需要输入“get”字。 myObj.getId();之类的内容是这样写的:#{myObj.id}。就是这样,如果你想在html表上写这个,那就这样做(我假设是html表,因为你说“我必须将该行中的每个列分开才能打印出来”)。

<table>
    <c:forEach var="rowObj" items="${myClass.myArrayList}">
        <tr>
            <td>${rowObj.column1}</td>
            <td>${rowObj.column2}</td>
            <td>${rowObj.column3}</td>
        </tr>
    </c:forEach>
</table>

请注意,答案中最重要的部分是我提供的链接,您应该了解所有这些。你已经把arraylist放在了请求中吗?有点难以分辨哪个是真正的问题。

另见: How to avoid Java code in JSP files?