页面分页制作

分页的过程

1 首先 我们可以做一个装所有页面属性的类

public class PageHandle {

private Integer pageNum;

private Integer pageSize;

private Integer totalRows;

private Integer totalPage;

private List<Dept> list;


public PageHandle(Integer pageNum, Integer pageSize) {
super();
this.pageNum = pageNum;
this.pageSize = pageSize;
}

public Integer getPageNum() {
if (pageNum<1) {
pageNum=1;
}
if (pageNum>getTotalPage()) {
pageNum=getTotalPage();
}
return pageNum;
}

public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}

public Integer getPageSize() {

return pageSize;
}

public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}

public Integer getTotalRows() {
return totalRows;
}

public void setTotalRows(Integer totalRows) {
this.totalRows = totalRows;

}

public Integer getTotalPage() {
totalPage=(totalRows-1)/pageSize+1;
return totalPage;
}

public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}

public List<Dept> getList() {
return list;
}

public void setList(List<Dept> list) {
this.list = list;
}


}


public class PageHandle2<T> {

private Integer pageNum;

private Integer pageSize;

private Integer totalRows;

private Integer totalPage;


private List<T> list;



public PageHandle2(Integer pageNum, Integer pageSize) {
super();
this.pageNum = pageNum;
this.pageSize = pageSize;
}

public List<T> getList() {
return list;
}

public void setList(List<T> list) {
this.list = list;
}

public Integer getPageNum() {
if(pageNum<1){
pageNum=1;
}
if(pageNum>getTotalPage()){
pageNum = getTotalPage();
}
return pageNum;
}

public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}

public Integer getPageSize() {
return pageSize;
}

public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}

public Integer getTotalRows() {
return totalRows;
}

public void setTotalRows(Integer totalRows) {
this.totalRows = totalRows;
}

public Integer getTotalPage() {
totalPage=(totalRows-1)/pageSize+1;
return totalPage;
}

public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}




}
2 我们在页面所需要的是数据均可以通过总条数来计算出来,每页显示的数是我们自己来定义,总页数是总条数/页面显示的数量 定义查询方法

public interface IDeptDao extends IBaseDao<Dept, Integer> {

PageHandle fenye(PageHandle pageHandle);

PageHandle2 paging(PageHandle2 pageHandle2);
}


@Repository
public class DeptDaoImpl extends BaseDaoImpl<Dept, Integer> implements IDeptDao{

@Override
public PageHandle fenye(PageHandle pageHandle) {

Session session = getSession();

pageHandle.setTotalRows(Integer.parseInt(session.createQuery("select count(deptno) from Dept").uniqueResult().toString()));

Query query = session.createQuery("from Dept");

pageHandle.setList(query.setFirstResult((pageHandle.getPageNum()-1)*pageHandle.getPageSize()).setMaxResults(pageHandle.getPageSize()).list());
return pageHandle;
}









@Override
public PageHandle2 paging(PageHandle2 pageHandle2) {
Session session =getSession();
//获得总记录数
Object uniqueResult = session.createQuery("select count(deptno) from Dept").uniqueResult();
String string = uniqueResult.toString();
int totalRows = Integer.parseInt(string);
pageHandle2.setTotalRows(totalRows);

// 查询分页
Query query = session.createQuery("from Dept");
query.setFirstResult((pageHandle2.getPageNum()-1)*pageHandle2.getPageSize());
query.setMaxResults(pageHandle2.getPageSize());
List list = query.list();
pageHandle2.setList(list);
return pageHandle2;
}


}




public interface IDeptService {

void save(Dept t);

void delect(Integer id);

void update(Dept t);

Dept get(Integer id);

List<Dept> getAll();

PageHandle fenye(PageHandle pageHandle);

PageHandle2 paging(PageHandle2 pageHandle2);
}


@Service
public class DeptServiceImpl implements IDeptService {
@Autowired
private IDeptDao deptDao;

@Override
public void save(Dept t) {
deptDao.save(t);

}

@Override
public void delect(Integer id) {

deptDao.delect(id);
}

@Override
public void update(Dept t) {
deptDao.update(t);

}

@Override
public Dept get(Integer id) {

return deptDao.get(id);
}

@Override
public List<Dept> getAll() {

return deptDao.getAll();
}

@Override
public PageHandle fenye(PageHandle pageHandle) {
return deptDao.fenye(pageHandle);
}

@Override
public PageHandle2 paging(PageHandle2 pageHandle2) {

return deptDao.paging(pageHandle2);
}



}


@Controller
@RequestMapping("/dept")
public class DeptController {
@Autowired
private IDeptService depts;


@RequestMapping("/list")
public String list(Integer inputSize,Integer inputNum,Model model){
int pageNum= inputNum == null? 1:inputNum ;
int pageSize= inputSize == null? 5:inputNum ;
PageHandle pageHandle =new PageHandle(pageNum,pageSize);
PageHandle fenye = depts.fenye(pageHandle);
model.addAttribute("pageHandle", fenye);
return "index";
}



@RequestMapping("/list1")
public String list1(Integer page, Integer size, Model model){
int pageNum = page == null?1:page;
int pageSize = size == null?6:size;

PageHandle2<Dept> pageHandle2 = new PageHandle2<Dept>(pageNum, pageSize);
PageHandle2 pag = depts.paging(pageHandle2);

model.addAttribute("pageCount", pag);

return "index";
}



}
以上的方法对应的有具体和泛型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值