page分页封装

封装el-Pagination

  • 目前在编写项目中,每个页面都有el-Pagination,所以对el-Pagination做了二次封装, 组件在个人开发使用不错,但不确定能满足各种业务需求,所以这里主要和大家分享一下设计思路。用一次爽一次,越用越爽。
分析问题:
  • el-taPaginationble是element-ui库的表单组件,如果我们要将其进行二次封装,那么需要考虑几个问题:
  • 其实很简单,几乎不用考虑其他问题,照猫画虎就可以了。
  • 直接搬过来用。(除非有特殊需求,在进行改造)
  • 组件使用方法:( 请查看《page表格API》)。
组件内部template:
<template>
  <div>
    <div class="page">
      <el-pagination
        :background="data.background"
        :hide-on-single-page="data.hideOnSinglePage"
        :page-size="data.pageSize"
        :page-sizes="data.pageSizes"
        :total="data.total"
        :current-page="data.currentPage"
        :layout="data.layout"
        @current-change="chagePage"
        @size-change="SizeChange"
      ></el-pagination>
    </div>
  </div>
</template>
<script>
export default {
  name: 'wb-page',
  props: {
    data: {
      type: Object
    }
  },
  data() {
    return {
    };
  },
  methods: {
    // 页数改变时候触发
    chagePage: function(currentPage) {
      this.$emit('currentChange',currentPage)
    },
    // 每页显示多少条改变时候触发
    SizeChange: function(size){
      this.$emit('sizeChange',size);
    }
  }
};
</script>
<style scoped>

</style>
package com.model; import javax.servlet.http.HttpServletRequest; import java.util.*; /** * 说明:参数封装Map * @version */ public class PageData extends HashMap implements Map{ private static final long serialVersionUID = 1L; Map map = null; HttpServletRequest request; public PageData(HttpServletRequest request){ this.request = request; Map properties = request.getParameterMap(); Map returnMap = new HashMap(); Iterator entries = properties.entrySet().iterator(); Entry entry; String name = ""; String value = ""; while (entries.hasNext()) { entry = (Entry) entries.next(); name = (String) entry.getKey(); Object valueObj = entry.getValue(); if(null == valueObj){ value = ""; }else if(valueObj instanceof String[]){ String[] values = (String[])valueObj; for(int i=0;i<values.length;i++){ value = values[i] + ","; } value = value.substring(0, value.length()-1); }else{ value = valueObj.toString(); } returnMap.put(name, value); } map = returnMap; } public PageData() { map = new HashMap(); } @Override public Object get(Object key) { Object obj = null; if(map.get(key) instanceof Object[]) { Object[] arr = (Object[])map.get(key); obj = request == null ? arr:(request.getParameter((String)key) == null ? arr:arr[0]); } else { obj = map.get(key); } return obj; } public static boolean hasVal(PageData pd,String key){ return pd!=null&&pd;.containsKey(key)&&!pd.getString(key).isEmpty(); } public String getString(Object key) { return (String)get(key); } public Integer getInt(Object key) { return Integer.parseInt(getString(key)); } @SuppressWarnings("unchecked") @Override public Object put(Object key, Object value) { return map.put(key, value); } @Override public Object remove(Object key) { return map.remove(key); } public void clear() { map.clear(); } public boolean containsKey(Object key) { // TODO Auto-generated method stub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值