Spring MVC,分页显示所有数据,然后进行搜索后,分页显示查询到的的数据

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring MVC 是一个基于 MVC 设计模式的 Web 框架,它可以帮助我们快速开发 Web 应用程序。分页是指将一定数量的数据分成若干页进行显示,一般用于数据量较大的情况。Spring MVC 中可以通过使用 Pageable 接口和 Page实现分页查询,具体实现方式如下: 1. 在控制器方法中添加 Pageable 参数,例如: ``` @RequestMapping("/list") public String list(Pageable pageable, Model model) { // 处理分页查询逻辑 Page<User> users = userService.findAll(pageable); model.addAttribute("users", users); return "userList"; } ``` 2. 在 Service 层中实现分页查询逻辑,例如: ``` public Page<User> findAll(Pageable pageable) { return userRepository.findAll(pageable); } ``` 3. 在视图中使用 Spring MVC 标签库显示分页导航和数据,例如: ``` <table> <thead> <tr> <th>ID</th> <th>姓名</th> <th>邮箱</th> </tr> </thead> <tbody> <c:forEach items="${users.content}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.email}</td> </tr> </c:forEach> </tbody> </table> <div class="pagination"> <spring:theme code="pagination" var="pagination"/> <ul> <li class="${users.first?'disabled':''}"><a href="${pagination.link(users.number - 1)}">«</a></li> <c:forEach begin="0" end="${users.totalPages-1}" varStatus="status"> <li class="${users.number == status.index?'active':''}"><a href="${pagination.link(status.index)}">${status.index + 1}</a></li> </c:forEach> <li class="${users.last?'disabled':''}"><a href="${pagination.link(users.number + 1)}">»</a></li> </ul> </div> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拈㕦一笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值