【文件属性】:
文件名称:三大框架下分页源代码
文件大小:57KB
文件格式:DOC
更新时间:2018-03-27 10:05:01
分页
三大框架分页的实现:
DAO里写法:
//查出页面要显示的字段 -----分页代码 页面上的查询全部
public List page(Integer pageno) {
// TODO Auto-generated method stub
log.debug("find TblNewsclass instance");
try {
String sql = "select new TblNews(id,title,pubdate,status) from TblNews";
Query query = getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(sql);
query.setFirstResult(pageno);
query.setMaxResults(3); //设置每页显示的条数
List result = query.list();
log.debug("delete successful");
return result;
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
public Integer getRows() {//查询出数据库里的条数
// TODO Auto-generated method stub
log.debug("find TblNewsclass instance");
try {
String sql = "select count(*) from TblNews";
Query query = getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(sql);
List list = query.list();
log.debug("delete successful");
return ((Long)list.get(0)).intValue();
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
Action里的代码实现:
private Integer totalElements;//总记录数
private Integer pageNow=1;//当前页
private Integer pageSize=3;//当前页面的记录数
private Integer pageCount;//总页数
private Integer no;
上面就个成员变量再给个set()get()方法;
//查询全部
public String findAll()throws Exception{
List list = newsService.page(getRowsno()); //参数是算出的页面的总条数
if(list.size()!=0){
ActionContext.getContext().put("news",list);
return "findAllSuccess";
}else{
return ERROR;
}
}
//分页算法
public Integer getRowsno(){
Integer totalElements = newsService.getRows();
pageCount = (totalElements + pageSize - 1) / pageSize;//计算出总页数
if(pageNow <1){
pageNow = 1;
}
if(pageNow > pageCount){
pageNow = pageCount;
}
no = (pageNow -1)*pageSize;//实际的记录开始数
return no;
}
Jsp页面写法:
/页
首页
上一页
上一页
下一页
下一页
尾页
配置文件里写
//tx标签代表时间传播
//切入
//这个名字要和action里定义的那个成员变量对应