今天给实验项目一些数据做了个分页显示,在此记录笔记,留待日后查看(新手编程,若有错误,希望各位及时指正,感激不尽)
1、首先导入相关Pagehelper分页插件jar包,Idea中导入依赖如下
<!--Pagehelper分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2、前端就是简单的请求链接如下
<li id="12">
<a
href="${pageContext.request.contextPath}/application/student?sid=${session.sid}">
<i class="fa fa-circle-o"></i> 已申请职位
</a>
</li>
前端页面底部用于控制上一页下一页的代码如下(注意上下请求路径需保持一致)
<%--分页页码--%>
<!-- .box-footer-->
<div class="box-footer">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/application/student?sid=${session.sid}" aria-label="Previous">首页</a></li>
<li><a href="${pageContext.request.contextPath}/application/student?sid=${session.sid}&page=${pageInfo.pageNum-1}&size=8">上一页</a></li>
<c:forEach begin="1" end="${pageInfo.pages}" var="pageNumber">
<li><a href="${pageContext.request.contextPath}/application/student?sid=${session.sid}&page=${pageNumber}&size=8">${pageNumber}</a></li>
</c:forEach>
<li><a href="${pageContext.request.contextPath}/application/student?sid=${session.sid}&page=${pageInfo.pageNum+1}&size=8">下一页</a></li>
<li><a href="${pageContext.request.contextPath}/application/student?sid=${session.sid}&page=${pageInfo.pages}&size=8" aria-label="Next">尾页</a></li>
</ul>
</div>
3、controller层相关方法上设置形参page与size,并设置默认值
@RequestMapping("/student")
public String student(@RequestParam(name="page",required = true,defaultValue = "1") int page,
@RequestParam(name="size",required = true,defaultValue = "8")int size,
Model model,int sid){
System.err.println(sid);
/*用集合,因为返回的不止一个*/
List<Application> list = applicationService.findApplicationBySid(page,size,sid);
PageInfo pageInfo=new PageInfo(list);
model.addAttribute("pageInfo", pageInfo);
System.err.println("我要返回了");
return "application_to_student";
}
4、service层相关代码如下
接口:
/*返回的是集合,要用List*/
List<Application> findApplicationBySid(int page, int size, int sid);
实现类:(实现类调用之前记得应用PageHelper分页插件的startPage方法)
@Override
public List<Application> findApplicationBySid(int page, int size, int sid) {
PageHelper.startPage(page,size);
return applicationDao.findApplicationBySid(page,size,sid);
}
5、Dao层相关代码如下
接口:这里要记得,多个参数传数据库时(如此例多个参数,且需要引用sid的值来查找)要用@Param注解一下,这样xml里才能识别到
/*由于要依靠sid值进行xml中sql语句的查值,这里又是多个参数,所以要@Param一下*/
List<Application> findApplicationBySid(int page, int size, @Param("sid")int sid);
xml文件:
<!--查找已投递简历的职位,注意select id=后面分号里不能有空格-->
<select id="findApplicationBySid" resultType="Application" >
SELECT uname,jobName,status,date from ssmbuild.application where sid=#{sid}
</select>