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; }
分享到:
相关推荐
3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、...
3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、...
3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记 4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、...
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框架笔记大全 JSP+JDBC_假分页 02 JSP+JDBC_真分页(基于MySQL数据库分页) 03 JSP+DAO和MVC+DAO(基于MySQL数据库分页) 04 Struts入门 05 使用Struts + DAO完成用户登陆 06 Struts标签-...
3-JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记.pdf 4-Struts入门笔记.pdf 005_Struts+DAO登陆.pdf 9-Struts高级部分(1)(解决重复提交、上传组件)笔记.pdf 54留言管理程序_Struts + Spring + Hibernate笔记.pdf
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
1-JSP+JDBC_假分页笔记 9-Struts高级部分(1)(解决重复提交、上传组件)笔记 11-留言管理程序_使用Struts + DAO完成笔记 54留言管理程序_Struts + Spring + Hibernate笔记 ......
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 DAO --...
第23章 在线音乐管理系统(ajax+jsp+struts 2.x) 23.1 在线音乐管理系统简述 23.2 在线音乐管理系统前期准备 23.3 在线音乐管理系统具体实现——超级管理员操作 23.4 在线音乐管理系统具体实现——注册...
支持Struts1、Struts2、SpringMvc、Spring、Hibernate3框架。 支持自增主键,复合主键,外键关联。 生成Hibernate POJO类,Dao类,Service类,Action类。 生成保存,删除,修改,批量保存,批量修改,批量删除,按...
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...
支持struts1、struts2、springmvc、spring、hibernate3框架。 支持自增主键,复合主键,外键关联。 生成hibernate pojo类,dao类,service类,action类。 生成保存,删除,修改,批量保存,批量修改,批量...
第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 ...
软件及安装说明 <br> 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...
软件及安装说明 <br> 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...
软件及安装说明 <br> 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...