struts2标签和hibernate实现分页
来源:互联网 发布:linux php源码 编辑:程序博客网 时间:2024/05/07 04:00
jsp:
<div id="a_mainboxb"> <table border="0.5" bordercolor="#666666" style="font-size:12px"> <tr> <th>主题名称</th> <th>创建时间</th> <th>状态</th> <th>分类</th> <th>查看</th> </tr><s:iterator value="titles"> <tr> <td><s:property value="titleName"/></td> <td width=150px><s:date name="beginTime" format="yyyy-MM-dd HH:mm:ss" /></td> <td width=30px><s:property value="titleStatu"/></td> <td width=30px><s:property value="titleSort"/></td> <s:url id="url_view" value="showone"> <s:param name="id" value="titleId"></s:param> </s:url> <td width=30px><s:a href="%{url_view}">查看</s:a></td> </tr></s:iterator> </table> <s:url id="url_pre" value="show.action"> <s:param name="pageNow" value="pageNow-1"></s:param> </s:url> <s:url id="url_next" value="show.action"> <s:param name="pageNow" value="pageNow+1"></s:param> </s:url> <s:url id="url_first" value="show.action"><!-- 分页首页 --> <s:param name="pageNow" value="1"></s:param> </s:url> <s:url id="url_last" value="show.action"><!-- 分页尾页 --> <s:param name="pageNow" value="totalpages"></s:param> </s:url> <s:a href="%{url_first}">首页</s:a> <s:a href="%{url_pre}">上一页</s:a> <s:a href="%{url_next}">下一页</s:a> <s:a href="%{url_last}">尾页</s:a> 共<s:property value="totalpages"/>页 当前第<s:property value="pageNow"/>页 </div>
show.action对应的Action:
package shi.vote.pages;import java.util.List;import shi.vote.model.VoteTitle;import com.opensymphony.xwork2.ActionSupport;public class ShowAction extends ActionSupport {private List titles ; private int pageSize =3; //每页显示3条记录 private int totalrows; //总条数 private int totalpages; //总页数 private int pageNow=1; //当前页private PageDAO pageDAO = new PageDAO();public List getTitles() {return titles;}public void setTitles(List titles) {this.titles = titles;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getTotalrows() {return totalrows;}public void setTotalrows(int totalrows) {this.totalrows = totalrows;}public int getTotalpages() {return totalpages;}public void setTotalpages(int totalpages) {this.totalpages = totalpages;}public PageDAO getPageDAO() {return pageDAO;}public void setPageDAO(PageDAO pageDAO) {this.pageDAO = pageDAO;}public void calPages()//计算总页数 { int p=totalrows/pageSize; if((totalrows%pageSize)>0) { p++; } totalpages=p; }public int getPageNow() {return pageNow;}public void setPageNow(int pageNow) {this.pageNow = pageNow;}public String execute() throws Exception {try{totalrows=pageDAO.getRows("select count(*) from VoteTitle");calPages();int currentrow=0;if (pageNow<=1)//向前翻页是否超出范围{currentrow=0;}else{if(pageNow>totalpages)//向后翻页是否超出范围pageNow=totalpages;currentrow=(pageNow-1)*pageSize;}String hql="select title from VoteTitle title order by title.titleId";titles = pageDAO.findWithPage(pageSize, currentrow,hql);System.out.println("titles大小"+titles.size());return SUCCESS ;}catch(Exception e){e.printStackTrace();return ERROR;}}}
一下部分是我写的数据库访问类
package shi.vote.pages;import java.util.*;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import shi.vote.tools.HibernateUtil;/* * 分页使用的数据库查询类 */public class PageDAO {//获取查询内容public List findWithPage(int pageSize,int startRow,String hql)throws HibernateException{List pagelist=null;Transaction tx=null;try {Session session=HibernateUtil.currentSession();tx=session.beginTransaction();Query q=session.createQuery(hql);//"select title from VoteTitle title order by title.titleId"q.setFirstResult(startRow);q.setMaxResults(pageSize);pagelist=q.list();tx.commit();} catch (HibernateException he) {if(tx!=null){tx.rollback();}throw he;}finally {HibernateUtil.closeSession();}return pagelist;}//获取查询条件行数public int getRows(String query) throws HibernateException{int totalRows = 0;Transaction tx = null;try {Session session = HibernateUtil.currentSession();tx = session.beginTransaction();//totalRows=((Integer)session.createQuery(query).iterate().next()).intValue();//获得总行数Object ob=(session.createQuery(query).iterate().next());totalRows=Integer.parseInt(ob.toString());System.out.println("输出数字"+totalRows);tx.commit();} catch (HibernateException he) {if (tx != null){tx.rollback();}throw he;}catch(Exception e){e.printStackTrace();}finally {HibernateUtil.closeSession();}return totalRows;}}
使用的时候,先访问2代码段的Action,Action调用3代码段的数据库查询,然后再把结果集返回给1 jsp。
在jsp每点一次翻页,重新调用一次Action 如上流程。
(大量查询不影响速度,翻页时取数据)
- struts2标签和hibernate实现分页
- 使用hibernate和struts2实现分页功能
- 使用hibernate和struts2实现分页功能
- 使用hibernate和struts2实现分页功能
- 使用hibernate和struts2实现分页功能
- 使用hibernate和struts2实现分页功能
- 使用hibernate和struts2实现分页功能
- struts2、hibernate 分页(自定义标签)
- 分页(struts2+hibernate+标签)
- Struts2+HIBERNATE实现分页
- Struts2+HIBERNATE实现分页
- Hibernate+Struts2 分页实现
- struts2+hibernate+spring分页实现
- struts2+hibernate+spring分页实现
- Struts2+Hibernate 实现数据分页
- struts2+spring+hibernate 实现分页
- Struts2+Hibernate+Spring 分页自定义标签
- Struts2+Hibernate+Spring 分页自定义标签
- 教你如何开关Android的APN网络
- sprintf()的snprintf()用法
- 在C#中操作XML
- Android源码编译时常用Linux命令
- jquery.validate全攻略
- struts2标签和hibernate实现分页
- 功夫电影中非常经典(武术非常实用)
- 深度分析HTML5在移动开发方面的发展状况
- 新的开始
- 中国黄金需求居世界第一 下半年金价或突破1600
- 没有事业的女朋友(一个老总的感言)
- 五种方法实现css垂直居中
- EA以7.5亿美元收购植物大战僵尸开发商PopCap
- 比较两个文件中特定位置的字符【总结】