SSH+ExtJs简易分页示例:数据查询与计数

3星 · 超过75%的资源 需积分: 3 13 下载量 45 浏览量 更新于2024-09-14 1 收藏 43KB DOC 举报
在这个SSH+ExtJS分页小例子中,我们主要探讨如何在Spring框架(SSH)的集成下,利用ExtJS库进行数据分页展示。这里涉及到了Java持久层编程(Hibernate)与前端用户界面交互的设计。 首先,让我们看NewsDAO.java部分,这是数据库操作类,主要用于与news表和newstype表进行交互。其中两个核心方法是`publicListfindPageAll`和`publicinttotalRecord`: 1. `publicListfindPageAll(int start, int limit)`:这个方法实现了分页查询功能。它接受起始索引(start)和每页显示的记录数量(limit),通过`HibernateTemplate`执行一个SQL查询。SQL语句是`from News n left join fetch n.newstype`,这表示查询news表中的数据,并与newstype表通过id关联。`setFirstResult`和`setMaxResults`用于设置分页范围,分别对应从第`start * limit`条记录开始,返回`limit`条记录。返回的结果是新闻列表。 2. `publicinttotalRecord()`:这个方法计算总的记录数。它通过执行SQL `select count(n.id) from News n` 来获取news表中的记录总数。这个查询不涉及分页,而是获取整个表的记录数目。返回的结果存储在`count`变量中,并以整型返回。 然后,我们转向NewsAction.java,这是一个典型的Spring MVC控制器,用于处理HTTP请求和响应。在这个例子中,`list`方法可能是`ActionForward`的一个实例,它会根据前端提交的分页参数,调用NewsDAO的分页方法并渲染结果到前端页面: 30. `public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)`:在这个方法中,你需要解析来自前端的分页请求,比如当前页码和每页显示的记录数。然后将这些参数传递给`NewsDAO`的`publicListfindPageAll`方法获取分页数据。接着,根据返回的数据,可能需要构建一个ExtJS分页组件所需的参数,例如总记录数和分页信息。最后,根据分页组件的配置,将数据显示到前端,可能通过JSON格式将数据发送给前端,由ExtJS负责展示。 在实际应用中,你还需要在HTML视图中使用ExtJS的GridPanel或其他类似的分页组件,配合后台提供的数据来实现动态分页效果。例如,你可以创建一个带有分页插件的GridPanel,配置它的store(数据源)连接到NewsAction的`list`方法,以便根据服务器返回的分页信息更新显示的新闻列表。 总结来说,这个SSH+ExtJS分页小例子展示了如何在Spring框架下,结合Hibernate进行数据库查询,利用ExtJS实现前端的动态数据分页功能。通过理解并运用这些代码,开发者可以更好地构建基于分页的Web应用程序。