Spring MVC,分页显示所有数据,然后进行搜索后,分页显示查询到的的数据
需求:项目运行的时候,在index首页使用pagehelper分页显示所有的信息,然后在进行search搜索后继续在index首页显示查询到的数据。
JSP搜索框代码:
<div class="row">
<div class="col-md-3"><h1>学生信息</h1></div>
<div class="col-md-4 col-md-offset-5">
<form class="form-inline " >
<input id="keyWord" name="keyWord" class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
<button id="submit_search" class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</div>
JSP分页代码:
<div class="row">
<div class="col-md-4 allHeight">
<p>总共${pages.pages}页/当前${pages.pageNum}页</p>
</div>
<div class="col-md-8">
<nav aria-label="Page navigation">
<ul class="pagination">
<li ><a href="shows?pNum=1" aria-label="Previous"><span aria-hidden="true">首页</span></a></li>
<!--循环遍历显示分页,若是当前页就高亮显示-->
<c:forEach items="${pages.navigatepageNums}" var="navNums">
<c:if test="${navNums == pages.pageNum}">
<li class="active"><a href="#">${navNums}</a></li>
</c:if>
<c:if test="${navNums != pages.pageNum}">
<li><a href="shows?pNum=${navNums}">${navNums}</a></li>
</c:if>
</c:forEach>
<li ><a href="shows?pNum=${pages.pages}" aria-label="Previous"><span aria-hidden="true">尾页</span></a></li>
</ul>
</nav>
</div>
</div>
```java
在搜索的时候,我使用了AJAX提交请求,而没有使用form提交请求
AJAX代码
$("#submit_search").on("click",function(){
$.ajax({
url:"shows",
type:"GET",
data:{"keyWord":$("#keyWord").val()},
datatype:"json",
success:function(){
console.log("查询到数据了");
},
error:function(){
alert("没有查询的数据");
}
}) ;
})
SpringMVC代码
/**
* 首页显示学生信息,显示搜索到的信息
* @param pNum
* @param model
* @return
*/
@RequestMapping(value = "/shows",method = RequestMethod.GET)
public String showStudent(@RequestParam(value = "pNum",defaultValue = "1")Integer pNum,
/*RequestParam中设置了keyWord字段是可有可无的,所有在没有搜索的时候就不显示,
在进行了搜索操作后就显示*/
@RequestParam(value = "keyWord",required = false) String keyWord,Model model){
PageHelper.startPage(pNum, 15);
List<Student> students=null;
/*
这个地方判断处理,要展示的数据是搜索到的数据,还是要显示的数据
*/
if (keyWord == null ){
students= studentService.getStudentContainGrade();
}else{
students=studentService.getStudentContainGradeSearch(keyWord);
}
PageInfo<Student> pageInfo = new PageInfo <>(students,10);
model.addAttribute("pages", pageInfo);
return "list";
}
运行效果图
GitHub地址:
参考文章:https://blog.csdn.net/null111666/article/details/83269034