javaWeb分页思路与代码

javaWeb分页思路与代码,第1张

一、思路

二、代码

1、引入PageHelper:引入依赖

        
            com.github.pagehelper
            pagehelper
        

2、引入PageHelper:在mybatis的配置文件中的sqlSessionFactoryBean中配置插件

        
        
            
                
                
                    
                        
                            
                            mysql
                            
                            true
                        
                    
                
            
        

3、在AdminMapper中编写SQL语句

4、AdminMapper接口中声明方法

List selectAdminByKeyword(String keyword);

5、AdminService、AdminServiceImpl方法

PageInfo getPageInfo(String keyword,Integer pageNum,Integer pageSize);


    @Override
    public PageInfo getPageInfo(String keyword, Integer pageNum, Integer pageSize) {
        // 1、调用PageHelper的静态方法开启分页功能
        // 充分体现PageHelper的"非侵入式"设计:原本要做的查询不必有任何修改。不需要分页就不加这句
        PageHelper.startPage(pageNum,pageSize);

        // 2、执行查询
        List list = adminMapper.selectAdminByKeyword(keyword);
        
        // 3、封装到PageInfo对象中
        return new PageInfo<>(list);
    }

6、Controller方法

    @RequestMapping("/admin/get/page.html")
    public String getPageInfo(
            // 使用@RequestParam注解中的defaultValue属性,在请求中没有携带参数时使用默认值
            @RequestParam(value = "keyword",defaultValue = "") String keyword,
            @RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,
            @RequestParam(value = "pageSize",defaultValue = "5") Integer pageSize,
            ModelMap modelMap
    ){
        // 调用service获取PageInfo对象
        PageInfo pageInfo = adminService.getPageInfo(keyword, pageNum, pageSize);
        // 将pageInfo存入到模型中
        modelMap.addAttribute(CrowdConstant.ATTR_NAME_PAGE_INFO,pageInfo);
        return "admin-page";
    }

7、页面显示


                                
                                    
                                       抱歉,没有查询到你要的数据!
                                    
                                
                                
                                    
                                        
                                            ${myStatus.count}
                                            
                                            ${admin.loginAcct}
                                            ${admin.userName}
                                            ${admin.email}
                                            
                                                
                                                
                                                
                                            
                                        
                                    

                                
                            

8、分页显示:使用jQuery的Pagination插件

三、通过Json数据的方式传递、显示

1、Handler:

1⃣️映射地址是json结尾:/role/get/page/info.json

2⃣️返回的数据类型是ResultEntity>,而不是string

3⃣️不需要将分页数据放入到modleMap中,再跳转地址了。

    @ResponseBody
    @RequestMapping("/role/get/page/info.json")
    public ResultEntity> getPageInfo(
            @RequestParam(value = "keyword",defaultValue = "") String keyword,
            @RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,
            @RequestParam(value = "pageSize",defaultValue = "5") Integer pageSize
    ){
        // 调用Service方法获取分页数据
        PageInfo pageInfo = roleService.getPageInfo(keyword,pageNum,pageSize);

        // try {
        //     pageInfo = roleService.getPageInfo(keyword,pageNum,pageSize);
        //     return ResultEntity.successWithData(pageInfo);
        // }catch (Exception e){
        //     e.printStackTrace();
        //     return ResultEntity.failed(e.getMessage());
        // }

        // 封装到ResultEntity返回
        return ResultEntity.successWithData(pageInfo);
    }

2、前段工作

1⃣️view-controller直接配置跳转地址,不是经过上面的controller跳转了

2⃣️创建外部 JavaScript 文件并在在 role-page.jsp 引入。

3⃣️初始化数据

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1296042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存