当前位置: 首页 > 知识库问答 >
问题:

如何在Struts 2中实现分页

古扬
2023-03-14

如何在Struts 2中为客户端显示实现分页,并将Hibernate作为持久层。

以下是我迄今为止完成的代码

<display:table id="students" name="students" pagesize="2"
    export="false" requestURI="/student">
    <display:column property="studentRoll" title="Roll"
        paramId="studentRoll" sortable="true" />
    <display:column property="studentName" title="Name" sortable="true" />
    <display:column property="studentCourse" title="Course"
        sortable="true" />
    <display:setProperty name="paging.banner.placement" value="bottom" />
</display:table>

有没有办法在没有display标签的情况下实现这一点?

共有3个答案

夹谷浩宕
2023-03-14

我建议您使用jQuery Datatable,您需要执行以下操作:

<table id="datatable">
  <tbody>
    <s:iterator>
        <tr><td><s:property/></td></tr>
    </s:iterator>
  </tbody>
</table>
<script>
    $("#datatable").dataTable();
</script>

还有其他选项如struts2-jquery-plugin

这取决于你的需要。

祝花蜂
2023-03-14

您需要或多或少地复制display执行此操作的方式。

  1. 您需要构建一个页面选择器,为此您需要获取项目的总数-参见Criteria.set投影(Projections.row计数)。
  2. 您需要在页面上提供允许用户将所选页面发送到操作的链接。
  3. 在操作中,您可以使用所选的页码和页码来确定偏移量和结果数,请参阅Critera.setFirstResult和Criteria.setMaxResearch
  4. 然后,您将读取这些行并创建行bean的集合。
  5. 在JSP中,迭代bean并使用

似乎使用displaytag可能更容易,请参阅它的PaginatedList界面,该界面允许您在Hibernate中进行分页,并让displaytag完成所有艰苦的工作。

龙嘉誉
2023-03-14

有一种方法可以实现它,我会给你一些建议。也许这不是你想要的,但是有了显示标签,我真的很怀疑你是否能实现一些东西,我不想说这个词。display标记是一个库,用于简化web上表格数据的表示,它已经足够古老,可以与Ajax等现代技术和jQuery等基于组件的脚本库一起使用,甚至我也看到了显示标签ajaxified,但我看到这只不过是增加了问题架构的复杂性。需要在此处添加显示标记库的性质,它是基于属性的。它是为了简化当时的使用或开发过程而创建的。如今,人们不再局限于习俗和丑陋的解决方案。

现在看看代码,如果我可以说这是一个代码,标签表示具有行和列的表,允许使用标签、标头、其他超文本标记语言属性定制它们,即使使用CSS,但这是不可能的。

属性名表示变量,数据结构表示表格数据。它可以是一个列表列表,也可以是一组无关紧要的对象。问题是它可能是可编辑的,并且有行和列。

属性pagesize指向每页的记录数。

给定的URI甚至不记得是从服务器提供数据还是仅仅为了转义。

标记末尾附近是横幅放置,使用属性设置。因此,您甚至不必使用它实现任何代码,只需设置自定义属性即可。

现在,要用Struts2中的数据表示表,有一个

<s:iterator var="row" begin="0" value="#request.navigator.list">

标签,列表是学生或其他无关紧要的东西。导航器是类似于显示标记中的横幅的对象,但不是此处的组件。组件导航器和我将在后面描述的按钮。

在迭代器中,可以有任何表示行的内容。但这是不可能的。

导航器作为组件可以给出不同的方式,例如

<s:property value="#request.navigator.bar" escapeHtml="false"/>  

然后,通过SQL或HQL或Criteria API从数据库中获取列表中的数据并不重要。这是分两步完成的。首先检查希望返回的记录总数。它提供了在末尾移动且不超过页面大小的可能性。然后返回需要在页面上表示的有限行数。这些都是在显示表格的操作中完成的。操作需要两个参数:第一行和页面大小。如果记录总数发生更改,还需要执行此操作来更正导航器。

这就是我想要回答的关于如何实现页面导航逻辑的问题。我尽量不写太多的代码,因为这是毫无疑问的。

 类似资料:
  • 问题内容: 我是ReactJS的新手,正在其中创建一个简单的TODO应用程序。实际上,这是一个非常基本的应用程序,没有数据库连接,任务存储在数组中。我现在想添加分页功能,并添加了“编辑和删除”功能。如何实施?任何帮助将不胜感激。谢谢…!! 问题答案: 我最近在纯React JS中实现了分页。这是一个工作示例:http : //codepen.io/PiotrBerebecki/pen/pEYPbY

  • 问题内容: Spring MVC中是否有任何现成的,易于实现的标准分页组件/ tag-lib或代码示例可用于分页? 问题答案: 有关示例,请参见样本中的JPetstore,例如

  • 这类似于这个没有任何答案的问题。我已经阅读了所有关于如何在twitter、facebook和Disqs api中使用游标的内容,以及这篇关于Disqs通常如何构建游标的文章,但我似乎仍然无法理解它们是如何工作的,以及如何在我自己的项目中实现类似的解决方案。有人能具体解释他们背后的不同技术和概念吗?

  • 本文向大家介绍Struts2+Hibernate实现数据分页的方法,包括了Struts2+Hibernate实现数据分页的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Struts2+Hibernate实现数据分页的方法。分享给大家供大家参考,具体如下: 1.用Hibernate实现分页技术: 2.在Action里调用Hibernate实现分页技术的方法,并跳转到显示界面: 3.st

  • 问题内容: 是否有任何可用于实现列表分页的库? 假设我有10行的空间,并且用户可以选择是否要按页面向前或向后滚动(因此+-10个项目)。这可能例如由来控制。 要构建一个类,以防止在没有足够的项目可显示时向后/向前滚动,以及自我保存用户当前在哪个页面上的状态,这可能是一项艰巨的工作。 那有什么事吗 问题答案: 我之前已经解决了。我做了一个静态的getPages方法,该方法将通用集合分解为页面列表(也

  • 我想在前端创建一个这样的表,它可以更改页面甚至每页的行(不需要) 我将创建一个lambda函数(带nodejs)来检索分页数据。 但是Dynamodb使用LastEvaluatedKey和ExclusiveStartKey进行分页,这对于像我这样的初学者来说是非常奇怪的。似乎无法应用上表中的正常分页。 我能想到的唯一解决方案是从Dynamodb获取所有数据并将其存储在前端,然后在前端进行分页,但这