PageHelper 需要的maven坐标
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency>
applicationContext.xml (spring.xml ) 配置 在 SqlSessionFactoryBean 标签内 配置
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="datasource"/>传入PageHelper的插件<property name="plugins"><array>传入插件的对象 <bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><props><prop key="helperDialect">oracle</prop><prop key="reasonable">true</prop> 使页数不能为负数和大于页数</props></property></bean></array></property></bean>
2.在Service中 只需要 page szie 需要前端传过来
@Service
@Transactional
public class OrdersServiceImpl implements IOrdersService {@Autowiredprivate IOrdersDao iOrdersDao;@Overridepublic List<Orders> findAll(int page, int size) {PageHelper.startPage(page,size); 必须在findAll方法前return iOrdersDao.findAll();
}}
3.Controller中
@Controller
@RequestMapping("/orders")
public class OrderController {@Autowiredprivate IOrdersService iorderService;@RequestMapping("/findAll.do")public ModelAndView findAll(@RequestParam(name = "page",required = true,defaultValue = "1") int page,@RequestParam(name = "size",required = true,defaultValue = "4") int size){List<Orders> orders = iorderService.findAll(page,size);PageInfo pageInfo = new PageInfo(orders);ModelAndView mv = new ModelAndView();mv.addObject("pageInfo",pageInfo);mv.setViewName("orders-page-list");return mv;
}
}
PageInfo 是有page helper 提供的类 将数据库中查询封装 的 orders domain 直接传入构造方法
在前端 直接 pageInfo.list 取出orders 数据 其中pageInfo还有 当前页 总页数等信息
4.前端配置
<div class="box-tools pull-right"><ul class="pagination"><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=1&size${pageInfo.pageSize}" aria-label="Previous">首页</a></li><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=${pageInfo.pageNum-1}&size${pageInfo.pageSize}">上一页</a></li><c:forEach begin="1" end="${pageInfo.pages}" var="pageNum"><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=${pageNum}&size${pageInfo.pageSize}">${pageNum}</a></li></c:forEach><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=${pageInfo.pageNum+1}&size${pageInfo.pageSize}">下一页</a></li><li><a href="${pageContext.request.contextPath}/orders/findAll.do?page=${pageInfo.pages}&size${pageInfo.pageSize}" aria-label="Next">尾页</a></li></ul>
</div>