`
afeitech
  • 浏览: 34170 次
  • 性别: 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  
好样的,热心的你,永远快乐.祝你事业顺利

相关推荐

    J2EE三大框架_笔记_a

    3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、...

    J2EE框架_笔记_c

    3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、...

    J2EE框架_笔记_b

    3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、...

    javaEE框架笔记,识货人下

    3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记.pdf 33-37Hibernate1对N案例笔记.pdf 38-43Hibernate多对多案例笔记.pdf 4-Struts入门笔记.pdf 44登陆案例(Struts+DAO+Hibernate)笔记.pdf 45-Struts+Hibernate...

    MLDN框架笔记大全

    MLDN框架笔记大全 JSP+JDBC_假分页 02 JSP+JDBC_真分页(基于MySQL数据库分页) 03 JSP+DAO和MVC+DAO(基于MySQL数据库分页) 04 Struts入门 05 使用Struts + DAO完成用户登陆 06 Struts标签-...

    SSH学习基础笔记 .zip

    3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记.pdf 4-Struts入门笔记.pdf 005_Struts+DAO登陆.pdf 9-Struts高级部分(1)(解决重复提交、上传组件)笔记.pdf 54留言管理程序_Struts + Spring + Hibernate笔记.pdf

    AutoCode代码生成器(SSH版)

    JSP文件--&gt; 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--&gt; 业务Action.java和导出Excel的Action等 VO --&gt; bean.java及 bean.hbm.xml配置文件 Service --&gt; Service接口定义类 ...

    JAVA框架核心技术笔记

    1-JSP+JDBC_假分页笔记 9-Struts高级部分(1)(解决重复提交、上传组件)笔记 11-留言管理程序_使用Struts + DAO完成笔记 54留言管理程序_Struts + Spring + Hibernate笔记 ......

    AutoCode代码生成器【SSH版】

    JSP文件--&gt; 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--&gt; 业务Action.java和导出Excel的Action等 VO --&gt; bean.java及 bean.hbm.xml配置文件 Service --&gt; Service接口定义类 ...

    ssh代码生成器轻松、快捷

    JSP文件--&gt; 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--&gt; 业务Action.java和导出Excel的Action等 VO --&gt; bean.java及 bean.hbm.xml配置文件 Service --&gt; Service接口定义类 DAO --...

    JAVA WEB典型模块与项目实战大全

    第23章 在线音乐管理系统(ajax+jsp+struts 2.x)  23.1 在线音乐管理系统简述  23.2 在线音乐管理系统前期准备  23.3 在线音乐管理系统具体实现——超级管理员操作  23.4 在线音乐管理系统具体实现——注册...

    Java代码生成工具新版

    支持Struts1、Struts2、SpringMvc、Spring、Hibernate3框架。 支持自增主键,复合主键,外键关联。 生成Hibernate POJO类,Dao类,Service类,Action类。 生成保存,删除,修改,批量保存,批量修改,批量删除,按...

    MyEclipse 6 Java EE 开发中文手册 第九章完整

    163 9.5.1 分页应用的设计思路 163 9.5.2 创建StrutsPageDemo项目,加入Hibernate开发功能 169 9.5.3 反向工程生成DAO层 169 9.5.4 编写分页应用层 170 9.5.5 加入Struts表现层和控制层 171 9.5.6...

    Java代码生成工具(傻瓜式操作无需教程的代码生成工具) v2.0.zip

    支持struts1、struts2、springmvc、spring、hibernate3框架。  支持自增主键,复合主键,外键关联。  生成hibernate pojo类,dao类,service类,action类。  生成保存,删除,修改,批量保存,批量修改,批量...

    JAVA程序开发大全---上半部分

    第20章 网上宠物商店(JSP+JavaBean) 342 20.1 系统需求分析与概要设计 342 20.1.1 系统需求分析 342 20.1.2 系统模块划分 342 20.2 数据库设计 344 20.3 使用MyEclipse创建项目 347 20.4 系统公共模块的实现 348 ...

    火炬博客系统5

    软件及安装说明 &lt;br&gt; 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...

    火炬博客系统7

    软件及安装说明 &lt;br&gt; 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...

    火炬博客系统6

    软件及安装说明 &lt;br&gt; 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...

Global site tag (gtag.js) - Google Analytics