赞
踩
1.ResponseVo 定义分页属性
- public class ResponseVo {
- private String resultNote;
- private Integer result;
- private Integer statu;
- private Integer totalCount;
- private Integer pageIndex;
- private Integer pageSize;
- private Integer currPageCount;
- private Object detail;
- private List<Object> detailList;
- }
2.PageHelp 定义同样相关属性
- public class PageHelp {
-
- private Integer pageIndex;//当前第几页 下标从0开始
- private Integer pageSize;//每页展示多少条数据
- private Integer totalCount;//数据总数
- private Integer currPageCount;//当前页数据个数
- private Integer totalIndex;//总页数
- }
- /**
- * 判断json传过来的数据有无分页需求,格式化,默认值等设置
- * @param jsonString
- * @return
- */
- public PageHelp isHasPageHelp(String jsonString){
- this.pageIndex = 0;
- this.pageSize = 10;
- JSONObject json = JSONObject.parseObject(jsonString);
- if(json.getString("pageSize") !=null){
- if(json.getString("pageSize").trim().matches("^[0-9]*$")){
- this.pageSize = Integer.parseInt(json.getString("pageSize").trim());
- }
- if(this.pageSize>50){//分页如果一页显示大于50条数据,则只能以50条每页分页
- this.pageSize = 50;
- }
- }
- if(json.getString("pageIndex") !=null){
- if(json.getString("pageIndex").trim().matches("^[0-9]*$")){
- this.pageIndex = Integer.parseInt(json.getString("pageIndex").trim());
- }
- }
- return selectPageCriteria(this.pageIndex, this.pageSize);
-
- }

- /**
- * @param pageNum
- * @param pageSize
- * @return
- */
- public PageHelp selectPageCriteria(Integer pageIndex,Integer pageSize){
- PageHelp pageHelp = new PageHelp();
- if(pageIndex!=0){
- pageIndex = (pageIndex)*pageSize;
- }else{
- pageIndex = 0;
- }
-
- pageHelp.setPageIndex(pageIndex);
- pageHelp.setPageSize(pageSize);
- return pageHelp;
- }
-

上面两个方法对
pageIndex 和PageSize进行验证,然后map.put("pageHelp", pageHelp.isHasPageHelp(param));
List<UserLog> userLogsLis = userLogService.listUserLog(map);
int total = userLogService.totalUserLog(map);
- <select id="listUserLog" parameterType="map" resultMap="BaseResultMap">
- select
- <include refid="Base_Column_List" />
- from cp_user_log
- <where>
- <if test="loginName != null">
- and login_name = #{loginName,jdbcType=VARCHAR}
- </if>
- <if test="level != null">
- and level = #{level,jdbcType=VARCHAR}
- </if>
- <if test="keyWord != null">
- and key_word = #{keyWord,jdbcType=VARCHAR}
- </if>
- <if test="otherParamVo.addTimeBegin != null">
- <![CDATA[ and create_time >=#{otherParamVo.addTimeBegin,jdbcType=TIMESTAMP}]]>
- </if>
- <if test="otherParamVo.addTimeEnd != null">
- <![CDATA[ and create_time <= #{otherParamVo.addTimeEnd,jdbcType=TIMESTAMP}]]>
- </if>
- <if test="loginNameType != null">
- and login_name_type = #{loginNameType,jdbcType=INTEGER}
- </if>
- </where>
- <if test="pageHelp.pageIndex != null and pageHelp.pageSize != null">
- limit #{pageHelp.pageIndex},#{pageHelp.pageSize}
- </if>
- </select>

以上是从java到sql的分页内容
--------------------------------------------------
接下来看从java到前段:
- resVo.setPageIndex(pageHelp.getPageIndex());
- resVo.setPageSize(pageHelp.getPageSize());
- pageHelp.setCurrPageCount(userLogsLis.size());
- resVo.setCurrPageCount(userLogsLis.size());
- resVo.setDetail(userLogsLis);
- resVo.setTotalCount(total);
-
- return JSONObject.toJSONString(resVo, SerializerFeature.WriteMapNullValue,
- SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullStringAsEmpty,
- SerializerFeature.WriteDateUseDateFormat);
返回了Json resVo到前台;
JS:定义参数:
- var vmm=new Vue({
- el:'#searchbox',
- data:{
- //用户类型(0为普通用户、1为管理员)
- loginNameType_datas: [{num:'-1',value:'全部'},{num:'0',value:'普通用户'},{num:'1',value:'管理员'}],
- loginNameType_selected:'-1',
-
- //日志级别
- level_datas: [{num:'-1',value:'全部'},{num:'0',value:'正常'},{num:'1',value:'异常'}],
- level_selected:'-1',
-
- //日志内容
- keyWordName_datas:[{name:'全部'}],
- keyWordName_selected:"全部",
-
- loginName:"",
- orderId:"",
- userLogList:[],
- pageNum:1,
- pageIndex:1,
- pageChoice:1,
- orderId:"",
- userId:"",
- dateTime:'',
- currentPage:1,
- totalPage:0,
- pageSize:10,
- },

- submit: function(pageIndex,searchId){
-
- this.userLogList=[];
- var data= {};//此为提交到后台data
- //var id = this.orderId;
- var loginNameType = this.loginNameType_selected;
- var loginName = this.loginName;
- var level = this.level_selected;
- var keyWord = this.keyWordName_selected;
-
- if(loginNameType != -1){
- data.loginNameType = loginNameType;
- }
- if(loginName != ""){
- data.loginName = loginName;
- }
- if(this.dateTime != ''){
- data.createTimeBegin = this.dateTime[0];
- data.createTimeEnd = this.dateTime[1];
- }
- if(level != -1){
- data.level = level;
- }
- if(keyWord != "全部"){
- data.keyWord = keyWord;
- }
- data.pageIndex = pageIndex-1;
- data.pageSize = this.pageSize;
- this.pageIndex = pageIndex;
-
- this.$http.post(
- '/cpmgr/listUserLog',
- data
-
- ).then(function(data){//此为后台传来的data
-
- var json = data.body;
- var userLogList = data.body.detail;
-
- var obj={};
- for(var i =0;i<userLogList.length;i++){
- obj = userLogList[i];
-
- if(obj.loginNameType==0){
- obj.loginNameType="用户";
- }
- if(obj.loginNameType==1){
- obj.loginNameType="管理员";
- }
- if(obj.level==0){
- obj.level="正常";
- }
- if(obj.level==1){
- obj.level="异常";
- }
- vmm.userLogList.push(obj);
- }
- var pageNum = Math.ceil(json.totalCount/json.pageSize);
- vmm.pageNum = pageNum;
- this.totalPage = json.totalCount;
- console.log(userLogList);
- });
-
- },

jsp:
- <!--page start-->
- <ul class="page">
- <el-pagination background
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="currentPage"
- :page-sizes="[10, 20, 50, 100]"
- :page-size="10"
- layout="total, sizes, prev, pager, next, jumper"
- :total="totalPage">
- </el-pagination>
- </ul>
- <!--page end-->
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。