使用分页显示表中元素的元素

时间:2011-09-26 18:22:09

标签: jsp pagination

我是JSP的新手,所以请耐心等待。

我正在尝试创建一个JSP页面,该页面将显示我已获取的某些对象的表。这些对象中包含的是一个数组。在表格中,我希望有一个超链接,甚至是一个按钮,它将用户发送到一个页面,该页面将显示对象内包含的数组。

我目前有一个for循环遍历容器对象列表(包含数组),并且该循环构造主表,我让它显示容器对象的其他元素。

我应该使用什么技术让容器对象表链接到另一个具有数组表的页面? (位于容器对象中)容器对象中的每个链接都需要链接到其包含的数组。

2 个答案:

答案 0 :(得分:1)

您的问题缺少有关这些容器及其来源的一些基本信息。如果它们来自数据库,那么建议的路由是放入到另一个传递容器对象PK的页面的链接。这样,第二页将重新获取容器并显示其数组。

如果第二次无法获取容器,我建议使用javascript / jquery magic在同一页面中显示数组。这将导致更大的HTML内容,但将避免必须将内容存储在某种基于用户的缓存中。

答案 1 :(得分:0)

好吧,让我用订单示例解释一下。订单是一个集合,您希望在主页中列出整个集合。单击链接时,您希望显示与特定订单项有关的详细信息。

在这种情况下,您将使用c:forEach

遍历集合
 
<c:forEach var="orderDetail" items="orders">
<a href="/myProj/orderDetail?orderId=${orderDetail.id}">Order Detail</a>
</c:forEach>

每个列表都有一个带有参数的链接,该参数可以如上所述唯一标识该项目。 请注意,orderDetail是一个servlet(或任何控制器)。请求转到servlet,它读取请求参数。使用orderId参数获取关联的订单对象,将其置于请求范围内的名称下,例如orderDetailModel,并将请求分派给orderDetailsPage.jsp orderDetailsPage.jsp仅从请求范围中找到此orderDetailModel对象并显示它。

${orderDetailModel.placedTime}

希望这个例子有所帮助。