- 列表内容
将与分页有关的数据封装在一个对象中便于后面使用
//page<E>使用了泛型
public class Page<E> {
private int currentPage;//当前页码
private int pageSize;//一页几条数据
private int totalCount;//总共有几条数据
private int pageCount;//分了几页
private List<E> list;//存放每页的数据
//此处省略了set、get方法
service中需要些的方法():
//TermPO为每一页中显示的数据的数据类型
Page<TermPO> getTermByPage(int pageNO);
service的实现类中serviceImpl中需要些的方法:
@Override
public Page<TermPO> getTermByPage(int pageNO) {
// TODO Auto-generated method stub
Page<TermPO> pageInfo = new Page<>();
pageInfo.setCurrentPage(pageNO);
pageInfo.setPageSize(3);
int skip=(pageNO-1)*pageInfo.getPageSize();
List<TermPO> list = termMapper.getTermByPage(skip, pageInfo.getPageSize());
pageInfo.setList(list);
pageInfo.setTotalCount(termMapper.getTermCount());
return pageInfo;
}
TermMapper(Term是每页显示数据的数据类型)的接口文件中写的方法
//从索引为skip查询size条数据
List<TermPO> getTermByPage(@Param("skip")int skip,@Param("size")int size);
TermMapper(Term是每页显示数据的数据类型)的配置文件中写对应的sql语句
<select id="getTermByPage" resultType="TermPO">
select * from user u
right join term t on u.id=t.u_id
left join term2 t2 on t2.u_id=u.id
left join term3 t3 on t3.u_id=u.id
group by t.id
limit #{skip},#{size}
</select>
最后在对应的controller类中调用service中分页的方法即可
public class TermController {
@Autowired
TermService termService;
/*
* @Autowired TermTtl termTtl;
*/
// @RequestMapping("list?pageNO=${page.currentPage }")
@RequestMapping("list")
public ModelAndView list(Integer pageNO) {
ModelAndView mView = new ModelAndView();
if (pageNO == null) {
pageNO = 1;
}
Page pageInfo = termService.getTermByPage(pageNO);
mView.addObject("page", pageInfo);
mView.setViewName("term/gyzc-list");
return mView;
}
注意:在jsp的跳转路径中以?的形式拼接上页码的参数即可,如下
<a href="term/list?pageNO=${page.currentPage }">1</a>
上下页按钮
<c:choose>
<c:when test="${page.currentPage <=1 }">
<a href="javascript:void(0)">上一页</a>
</c:when>
<c:otherwise>
<a href="term/list?pageNO=${page.currentPage-1 }">上一页</a>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${page.currentPage >= page.pageCount }">
<a href="javascript:void(0)">下一页</a>
</c:when>
<c:otherwise>
<a class="product-ym_xyy" href="term/list?pageNO=${page.currentPage+1 }">下一页></a>
</c:otherwise>
</c:choose>