java+springboot+vue中的分页操作

vue代码
<script>
       var vm = new Vue({
           el:'#app',
           data:{
               all: 10, //总页数
               cur: 1,//当前页码
               totalPage: 0,//当前条数
           },
           mounted() {
               this.dataListFn(1); //调用分页的方法
           },
           methods:{
               //分页
               dataListFn: function(index){
                  // alert(1);
                   var page = index;
                   $.post("/stu/pageList",{NowPage:page},function (data) {
                       // alert(1);
                       vm.stu=[];
                       var len = data.content.length;
                       var dataList = data.content;//获取数据列表
                       for(var i = 0;i<len;i++){
                           vm.stu.push(dataList[i]);
                       }
                       vm.all=data.totalPages;//总页数
                       vm.cur = data.number+1;//当前页码
                       vm.totalPage = data.numberOfElements;//当前条数
                   })
               },
//分页
               btnClick: function(data){//页码点击事件
                   if(data != this.cur){
                       this.cur = data
                   }
//根据点击页数请求数据
                   this.dataListFn(this.cur.toString());
               },
               pageClick: function(){
//根据点击页数请求数据
                   this.dataListFn(this.cur.toString());
               }
           },
           computed: {
//分页
               indexs: function(){
                   var left = 1;
                   var right = this.all;
                   var ar = [];
                   if(this.all>= 5){
                       if(this.cur > 3 && this.cur < this.all-2){
                           left = this.cur - 2
                           right = this.cur + 2
                       }else{
                           if(this.cur<=3){
                               left = 1
                               right = 5
                           }else{
                               right = this.all
                               left = this.all -4
                           }
                       }
                   }
                   while (left <= right){
                       ar.push(left)
                       left ++
                   }
                   return ar
               }
           }
       })
    </script>

html代码

<!--分页-->
                <tr>
                    <td colspan="7" align="center" valign="middle"> <!--分页-->
                <div class="page-bar">
                    <ul>
                        <li v-if="cur>1"><a v-on:click="cur--,pageClick()">上一页</a></li>
                        <li v-if="cur==1"><a class="banclick">上一页</a></li>
                        <li v-for="index in indexs" v-bind:class="{ 'active': cur == index}">
                            <a v-on:click="btnClick(index)">{{ index }}</a>
                        </li>
                        <li v-if="cur!=all"><a v-on:click="cur++,pageClick()">下一页</a></li>
                        <li v-if="cur == all"><a class="banclick">下一页</a></li>
                        <li><a><i>{{all}}</i></a></li>
                    </ul>
                </div>
                    </td>
                </tr>

分页中用到的controller方法代码

@RequestMapping("/pageList")
    @ResponseBody
    public Page<List<Map>> pageList(HttpServletRequest request){
        Sort sort = null;
        sort = new Sort(Sort.Direction.DESC,"uuid");
        Integer NowPage = Integer.parseInt(request.getParameter("NowPage"));
        System.out.println(NowPage);
        Pageable Page = PageRequest.of(NowPage-1,2,sort);
        Page<List<Map>> data = stuService.findAllMap(Page);
        return data;
    }

div样式

<style>
        /*分页*/
        .page-bar{
            margin:40px auto;
            margin-top: 150px;

        }
        ul,li{
            margin: 0px;
            padding: 0px;
        }
        li{
            list-style: none
        }
        .page-bar li:first-child>a {
            margin-left: 0px
        }
        .page-bar a{
            border: 1px solid #ddd;
            text-decoration: none;
            position: relative;
            float: left;
            padding: 6px 12px;
            margin-left: -1px;
            line-height: 1.42857143;
            color: #5D6062;
            cursor: pointer;
            margin-right: 20px;
        }
        .page-bar a:hover{
            background-color: #eee;
        }
        .page-bar a.banclick{
            cursor:not-allowed;
        }
        .page-bar .active a{
            color: #fff;
            cursor: default;
            background-color: #E96463;
            border-color: #E96463;
        }
        .page-bar i{
            font-style:normal;
            color: #d44950;
            margin: 0px 4px;
            font-size: 12px;
        }
    </style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面将为你提供一个简单的示例代码,来完善vue+springboot前后端分离分页功能。 前端代码(Vue+ElementUI): ```html <template> <div> <el-table :data="tableData" border> <el-table-column prop="id" label="ID"></el-table-column> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> </el-table> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" :total="total"> </el-pagination> </div> </template> <script> import axios from 'axios'; export default { data() { return { tableData: [], currentPage: 1, pageSize: 10, total: 0 }; }, mounted() { this.getTableData(); }, methods: { getTableData() { axios.get('/api/user', { params: { page: this.currentPage, size: this.pageSize } }).then(response => { this.tableData = response.data.content; this.total = response.data.totalElements; }); }, handleSizeChange(val) { this.pageSize = val; this.getTableData(); }, handleCurrentChange(val) { this.currentPage = val; this.getTableData(); } } }; </script> ``` 后端代码(Spring Boot + MyBatis): ```java @RestController @RequestMapping("/api/user") public class UserController { @Autowired private UserService userService; @GetMapping public Page<User> getUserList(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size) { Pageable pageable = PageRequest.of(page - 1, size); return userService.getUserList(pageable); } } @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public Page<User> getUserList(Pageable pageable) { return userMapper.getUserList(pageable); } } @Mapper public interface UserMapper { Page<User> getUserList(Pageable pageable); } ``` 以上代码仅供参考,具体实现方式可能因具体业务需求而异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值