【问题标题】:Paging in struts 2struts 2中的分页
【发布时间】:2013-01-26 22:13:56
【问题描述】:

我需要实现一个分页解决方案,使用 Struts2 作为客户端显示,hibernate 作为持久层。由于我的数据库有很多记录,我只需要在给定时间加载特定数量的记录(每页 6 条记录)并在结果表下显示用户分页数。当用户单击特定数字时,我需要从数据库中获取特定数据并在 struts UI 中更新它。 I can see many examples 它需要整个数据列表来创建显示 UI。无论如何,我可以使用这种方法实现我的要求吗?如果没有,谁能告诉我一个实现这个的示例方法?

【问题讨论】:

  • 你用什么来显示分页数据?使用s:iterator 或某种插件?
  • “对于客户端显示”你需要实现一个服务,是json足够还是你需要xml?

标签: java hibernate struts2


【解决方案1】:

可以通过向 displaytag 表中添加以下属性来解决该问题。 partialList="true"size="resultSize"。这里 resultSize 是变量,您可以在其中分配操作类中结果的总行数。 More information can be found here

【讨论】:

    【解决方案2】:

    如果您想一次只获取 6 个结果,请使用:

    Query query = session.createQuery("from EntityName");
    query.setMaxResults(6);
    

    此外,对于 UI,您可以使用 displaytag。它具有内置的分页功能。此外,如果您设置 pagesize="6" 并设置 partialList="true",它一次只会获取 6 个结果。我想,也不需要使用 setMaxResults() 方法。

    希望对你有帮助:)

    【讨论】:

    • 这不起作用。如果我删除 setMaxResults(6) 然后它会加载每条记录。
    • 哦忘了...你还需要设置 sort="external" 参考这个问题stackoverflow.com/questions/3888367/… 并由 chanokim 回答。尽管答案可能要简单得多,但它仍然应该有效。要点是你应该实现 PaginatedList 并且应该使用两个方法 setMaxResults() 和 setFirstResult()。我只将 displaytag 与 jdbc & sql 一起使用,没有任何分页问题。请回复进展情况。
    【解决方案3】:

    使用 Hibernate,您可以指定类似的内容

    if (offset >= 0) 
    {
        query.setFirstResult(offset);
    }
    if (size > 0) 
    {
        query.setMaxResults(size);
    }
    

    因此,根据页码单击,您可以从数据库中获取那么多记录。

    【讨论】:

    • 我不是在问如何在休眠端做到这一点。那已经实施了。我需要知道如何使用我的问题中提出的 struts2 来显示它
    • 您的问题似乎并未表明 Hibernate 方面已经完成,并且您将此问题标记为 Hibernate,因此有些人会尝试告诉您如何在 Hibernate 中执行此操作似乎是公平的。
    猜你喜欢
    • 1970-01-01
    • 2013-01-30
    • 2013-09-28
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    相关资源
    最近更新 更多