一尘不染

如何在Struts 2中实现分页

jsp

如何在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标签的实现方法?


阅读 247

收藏
2020-06-08

共1个答案

一尘不染

有一种方法可以实现它,我会给您一些建议。可能不是您在寻找,而是使用显示标签,我真的怀疑您可以实现某些无关紧要的单词。display标签是一个用于简化网络上表格数据表示的库,它已经足够老,可以与Ajax等现代技术和基于组件的脚本库(如jQuery等)一起使用。即使我看到了ajaxified,但我仍然看到看到的仅仅是增加有问题的体系结构的复杂性。需要在此处添加基于属性的显示标签库的性质。创建它的目的是简化当时的使用或开发过程。如今,人们不再局限于定制和丑陋的解决方案。

现在看一下代码,如果我能说这是代码,则标记表示具有行和列的表,并且可以使用标签,标头,其他HTML属性(甚至使用CSS)对它们进行自定义,但这不是这个问题。

属性名称表示变量,数据结构表示表格数据。它可以是列表列表,也可以是对象集。有什么问题,它可以迭代并具有行和列。

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

给定的URI甚至不记得它是什么来从服务器馈送数据或只是为了转义。

标记的末尾是横幅广告放置,通过属性设置。因此,您甚至不必设置任何代码即可实现自定义。

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

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

标记,列表students或其他无关紧要的内容。导航器是类似于显示标签中横幅的对象,但此处不是组件。带有按钮的组件导航器,我将在后面介绍。

在迭代器内部,您可能有任何内容代表该行。但这是不可能的。

例如,可以简单地给导航器作为组件

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

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

这就是我要回答的有关如何实现页面导航逻辑的问题。我试着不为它编写很多很多代码。

2020-06-08