`
afeitech
  • 浏览: 35018 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts+Hibernate分页代码:从dao到jsp

阅读更多

listMessage.jsp:

<table border="1" align="center" width="600" style="border-collapse:collapse;font-size:10pt" >
  <caption>
    电子留言系统
  </caption>
  <tr>
    <td colspan="2" align="right">
    	<a href="enterPostMessage.do"> 发表新留言</a>
    </td>
  </tr>
  <tr>
    <th width="120">作者</th>
    <th width="480" >留言标题</th>
  </tr>
<logic:present name="messageList" scope="request" >
	<logic:iterate id="message" name="messageList" type="org.afei.vo.MessageBean" scope="request" >
    <tr>
      <td align="center" width="167"><bean:write name="message" property="owerName"/></td>
      <td align="center">
      	<a href='viewMessage.do?messageId=<bean:write name="message" property="id"/>'><bean:write name="message" property="title"/></a>
      </td>
    </tr>
</logic:iterate>
  <tr>
    <td align="right" colspan="2">
		第${requestScope.currentPage}页 
		共${requestScope.pageCount}页 	
		<a href="listMessage.do?pageNo=1">首页</a>	
		<logic:greaterThan name="currentPage" value="1" scope="request">
			<a href="listMessage.do?pageNo=${requestScope.currentPage - 1}">	
				上一页	
			</a>
		</logic:greaterThan>		
		<logic:lessThan name="currentPage" value='${requestScope.pageCount}' scope="request">
			<a href="listMessage.do?pageNo=${requestScope.currentPage + 1}">
			下一页
			</a>
		</logic:lessThan>	
		<a href="listMessage.do?pageNo=${requestScope.pageCount}">尾页</a>
  	</td>
  </tr>
</logic:present>
<logic:notPresent name="messageList" scope="request" >
  <tr>
    <td align="center" colspan="2">暂时没有任何留言</td>
  </tr>
</logic:notPresent>
</table>

ListMessageAction.java

public class ListMessageAction extends BaseAction {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		//获取消息总数
		int messageCount=messManager.getMessageCount();		
		//获取总页数
		int pageCount=messManager.getPageCount(messageCount, MessageManager.MESSAGE_PAGE_SIZE);
		
		int pageNo;
		String pageNoStr=request.getParameter("pageNo");
		if(pageNoStr==null||"".equals(pageNoStr.trim())){			
			pageNo=1;//第一次登陆,显示第一页
		}
		try {
			pageNo=Integer.parseInt(pageNoStr.trim());
		} catch (Exception e) {
			pageNo=1;
		}
		
		// 如果请求页已经超出最大页
		if(pageNo>pageCount){
			pageNo=pageCount;
		}
		
		request.setAttribute("pageCount", pageCount);
		request.setAttribute("currentPage", pageNo);
		request.setAttribute("messageList", messManager.getAllMessageByPage(pageNo));
		return mapping.findForward("success");
	}

}

 

MessageManagerImpl.java

	//获取消息数量
	public int getMessageCount() throws MessageException {
		Session sess=null;
		Transaction tx=null;
		try{
			sess=SessionFactoryBuilder.instance().getSessionFactory().openSession();
			tx=sess.beginTransaction();
			
			int result=(int)messageDao.findCount(sess);
			tx.commit();
			return result;
		}catch(Exception e){
			tx.rollback();
			e.printStackTrace();
			throw new MessageException("获取消息数量出现异常");
		}finally{
			sess.close();
		}
	}

	//根据总记录数和每页记录数获取总页数
	public int getPageCount(int count, int pageSize) throws MessageException {
		
		return (count+pageSize-1)/pageSize;
	}
 

 

MessageDaoHibernate.java

	public List findAllByPage(Session sess, int pageNo, int pageSize) {
		int offset=(pageNo-1)*pageSize;//(当前页码-1)*每页行数=开始查询的行号
		return sess.createQuery("from Message as m order by m.id desc")
				.setFirstResult(offset)//设置开始查询的第一行,默认从0开始
				.setMaxResults(pageSize)//设置需要查询的最大行数
				.list();
	}

	public long findCount(Session sess) {
		Object obj=sess.createQuery("select count(m.id) from Message as m")
		.uniqueResult();//返回一的实例
		return (Long)obj;	}
分享到:
评论
4 楼 elementstorm 2009-07-08  
  
3 楼 darkfxux 2009-01-16  
没弄全?能否弄全????
2 楼 jedece 2008-12-05  
:l       ol:
1 楼 husstick 2008-09-05  
好样的,热心的你,永远快乐.祝你事业顺利

相关推荐

    struts+hibernate做的分页显示

    这些代码片段可以作为参考,帮助理解如何在实际项目中实现Struts和Hibernate的分页功能。 总之,Struts+Hibernate的分页显示是一个典型的Web应用功能,它结合了两者的优势,使得开发者能够高效地处理大量数据的展示...

    Struts + Hibernate 实现简单分页功能

    至于实际的代码实现,"StrutsPageDemo"可能包含了Action类、DAO接口及其实现、实体类、配置文件、JSP页面等。Action类中的方法处理分页逻辑,DAO接口及其实现负责数据库操作,实体类映射数据库表结构,配置文件定义...

    用Struts+Hibernate做的分页

    通过这个项目,开发者可以学习到如何在Struts和Hibernate的集成环境下实现分页功能,理解MVC架构下各层的职责,以及如何使用Hibernate进行数据库操作。此外,还能了解到如何在前端展示分页信息,提高用户体验。这是...

    struts+hibernate分页

    综上所述,"struts+hibernate分页"涉及到的主要是如何在Struts的控制层和Hibernate的数据层之间协调处理分页请求,以及在DAO层利用Hibernate的特性实现数据库查询的分页。理解并掌握这两个框架的分页机制,对于开发...

    Struts+Hibernate分页

    通过以上步骤,我们可以构建一个功能完备且易于维护的Struts+Hibernate分页系统。在实际开发中,还可以结合Spring框架进行整合,提高代码的可测试性和解耦性。同时,随着技术的发展,现在的Web应用更多地采用Spring ...

    高效率spring+struts+hibernate分页算法

    本压缩包中的"高效率spring+struts+hibernate分页算法"文档,旨在提供一种优化的分页解决方案,以改善用户在浏览大量数据时的体验。 首先,让我们深入理解这三个框架的角色: 1. **Spring**:这是一个全面的开源...

    struts+hibernate分页 模糊查询

    ### Struts + Hibernate 分页与模糊查询 #### 一、简介 在软件开发过程中,特别是Web应用程序中,分页查询和模糊查询是非常常见的需求。本文将详细介绍如何利用Struts框架结合Hibernate实现这两种功能。 #### 二...

    Struts+Hibernate分页

    6. **Action类处理请求**:在Struts的Action类中,根据用户的请求参数(如当前页码)调用DAO的分页查询方法,并将结果封装到Page对象中。然后,将Page对象设置为Action的属性,以便在视图层进行渲染。 7. **视图...

    struts+spring+hibernate 分页

    总的来说,Struts+Spring+Hibernate 分页涉及到前端交互、后端服务、数据库查询等多个环节,需要综合运用这三个框架的能力。理解并熟练掌握这一过程,对于开发高效、可维护的Web应用具有重要意义。

    struts+hibernate+spring集成实现分页

    Struts、Hibernate和Spring是Java开发中的三大框架,它们各自负责不同的职责,组合起来可以构建出高效、松耦合的企业级应用。SSH(Struts、Spring、Hibernate)集成是Java Web开发中的常见模式,用于创建复杂的业务...

    关于Struts+Hibernate分页的例子

    在这个“关于Struts+Hibernate分页的例子”中,我们可能看到一个集成这两个框架的Web应用,用于展示如何在Struts中利用Hibernate进行数据的分页显示。分页是Web应用中常见的功能,能够帮助用户更有效地浏览大量数据...

    struts2+spring+hibernate分页显示完整代码

    在Web开发中,分页显示是一项常见的需求,尤其是在处理大量数据时,为了提高用户体验和系统...通过合理地设计DAO层和业务层,以及创建专门的分页类,我们可以轻松实现复杂的数据分页,同时保持代码的清晰和可维护性。

    spring+struts+hibernate分页

    在IT行业中,SSH(Spring、Struts和Hibernate)是一个经典的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。SSH框架各自负责不同的职责:Spring作为基础框架提供依赖注入和事务管理;Struts处理MVC...

    struts+hibernate+sql server2005分页的小项目

    **Struts、Hibernate和SQL Server 2005 分页小项目详解** 在软件开发中,尤其是Web应用,数据分页是一项重要的功能,它能够帮助用户有效地浏览大量数据,提高用户体验。本项目以"Struts+Hibernate+SQL Server 2005...

    struts1+hibernate分页

    将查询结果和分页信息(如当前页、总页数)封装到ActionForm对象中,然后通过Struts1的配置将控制权交给JSP页面。 6. **JSP页面展示** 在JSP页面上,使用JSTL或其他标签库遍历数据列表,并显示分页导航。导航通常...

    Struts+Hibernate实现分页

    在Java Web开发中,"Struts+Hibernate 实现分页"是一个常见的需求,尤其是在处理大量数据展示时。这个主题涉及到两个关键的技术栈:Struts作为MVC(模型-视图-控制器)框架,用于处理用户请求和业务逻辑,以及...

    spring+struts+hibernate写的分页代码

    在本示例中,"spring+struts+hibernate写的分页代码" 提供了一个使用这三大流行Java框架实现分页功能的实例。下面将详细解释这三个框架以及它们如何协同工作来实现分页。 1. **Spring框架**:Spring 是一个全面的...

    struts+hibernate+display分页实例

    Struts、Hibernate和DisplayTag是Java Web开发中的三个重要组件,它们共同构成了一个强大的MVC(Model-View-Controller)架构。在这个实例中,我们将会深入探讨如何将它们整合在一起,实现一个具备分页功能的Web应用...

Global site tag (gtag.js) - Google Analytics