您的位置:首页 > 编程语言

7、客户模块-客户模块之分页后台代码的编写(分页)

2017-10-22 12:05 579 查看

 

/crm/src/com/louis/domain/PageBean.java

package com.louis.domain;

import java.util.List;

/**
* 分页的JavaBean
* @author Administrator
*/
public class PageBean<T> {

// 当前页
private int pageCode;

// 总页数
// private int totalPage;

// 总记录数
private int totalCount;
// 每页显示的记录条数
private int pageSize;
// 每页显示的数据
private List<T> beanList;

public int getPageCode() {
return pageCode;
}
public void setPageCode(int pageCode) {
this.pageCode = pageCode;
}

/**
* 调用getTotalPage() 获取到总页数
* JavaBean的属性规定:totalPage是JavaBean是属性 ${pageBean.totalPage}
* @return
*/
public int getTotalPage() {
// 计算
int totalPage = totalCount / pageSize;
// 说明整除
if(totalCount % pageSize == 0){
return totalPage;
}else{
return totalPage + 1;
}
}

/*public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}*/

public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<T> getBeanList() {
return beanList;
}
public void setBeanList(List<T> beanList) {
this.beanList = beanList;
}
}

 /crm/WebContent/menu.jsp

/crm/src/com/louis/web/action/CustomerAction.java

// 属性驱动的方式
// 当前页,默认值就是1
private Integer pageCode = 1;

public void setPageCode(Integer pageCode) {
if (pageCode == null) {
pageCode = 1;
}
this.pageCode = pageCode;
}

// 每页显示的数据的条数
private Integer pageSize = 2;

public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
/**
* 分页的查询方法
* @return
*/
public String findByPage(){
// 调用service业务层
DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
// 查询
PageBean<Customer> page = customerService.findByPage(pageCode,pageSize,criteria);
// 压栈
ValueStack vs = ActionContext.getContext().getValueStack();
// 栈顶是map<"page",page对象>
vs.set("page", page);
return "page";
}

/crm/src/com/louis/service/CustomerServiceImpl.java

/**
* 分页查询
*/
public PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {
return customerDao.findByPage(pageCode,pageSize,criteria);
}

/crm/src/com/louis/dao/CustomerDaoImpl.java

/**
* 分页的查询
*/
public PageBean<Customer> findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {
PageBean<Customer> page = new PageBean<Customer>();
page.setPageCode(pageCode);
page.setPageSize(pageSize);

// 先查询总记录数    select count(*)
criteria.setProjection(Projections.rowCount());
List<Number> list = (List<Number>) this.getHibernateTemplate().findByCriteria(criteria);
if(list != null && list.size() > 0){
int totalCount = list.get(0).intValue();
// 总的记录数
page.setTotalCount(totalCount);
}

// 强调:把select count(*) 先清空,变成  select * ...
criteria.setProjection(null);

// 提供分页的查询
List<Customer> beanList = (List<Customer>) this.getHibernateTemplate().findByCriteria(criteria, (pageCode-1)*pageSize, pageSize);
// 分页查询数据,每页显示的数据  使用limit
page.setBeanList(beanList);

return page;
}

 

问题

看分页代码PageBean

属性驱动是什么意思

criteria

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: