ssm实现分页

首先要理清思路

   1.根据前端需求定义页面有几条记录pageSize,同时作为后面查询数据库最后一行的参数

   2.根据前端传递过来的参数pageNo定义查询第一行

   3.查询数据库所有记录(行数),记为参数rows

   4.对数据库根据pageNo和pageSize俩参数执行limit查询

   5.对pageNo设置界限,然后返回查询的集合

   6.前端初始化pageNo值为1,然后把前一页和后一页及首尾页设置为pageNo+-等值

   7.在表单中设置一个隐藏域,里面提交pageNo的值

   8.通过js里面的函数来将前一页等的值赋予隐藏域中的pageNo值,实现页面的跳转


具体代码实现如下:

   在service中定义所需方法:

            

  public Long getWordsRows();

	    public List<Words> getWordsListByPage(@Param("firstRow") int firstRow,@Param("PageSize") Integer       PageSize);

   然后实现:

           

     @Override
	        public List<Words> getWordsListByPage(int PageNo, Integer PageSize) {
		List<Words> words=mapper.SelectWordsListByPage((PageNo-1)*PageSize,PageSize); //(PageNo-1)*PageSize 为起始行      
		return words;
	}
	        @Override
	        public Long getWordsRows() {
		return mapper.SelectWordsRows();

	}

  dao接口定义:

        

 public List<Words> SelectWordsListByPage(@Param("firstRow") int firstRow,@Param("PageSize") Integer PageSize);

	        public Long SelectWordsRows();

  mapper.xml配置sql语句:

              

   <select id="SelectWordsListByPage" resultMap="BaseResultMap">
        select name name,date date,content content from words 
         limit #{firstRow},#{PageSize} 
                </select>
                <select id="SelectWordsRows" resultType="long">
        select count(1)  from words   

                </select>  

 controller层:

        

        @RequestMapping("/getAll")
	 public String getAll(HttpServletRequest request,Model model,@RequestParam(defaultValue="1",required=true,value="PageNo")Integer PageNo) {		
	    Integer PageSize=6;
		if(null==PageNo) {
			PageNo=1;
		}
		Long rows=wordsService.getWordsRows();
		Long totalPage=rows%PageSize==0?rows/PageSize:rows/PageSize+1;
		if(PageNo<1) {
			PageNo=1;
		}else if(PageNo>totalPage){
			PageNo=Integer.parseInt(totalPage.toString());
		}
		    List<Words> words=wordsService.getWordsListByPage(PageNo,PageSize);
		    request.setAttribute("wordlist", words);
		    model.addAttribute("wordlist", words);
		    model.addAttribute("PageNo", PageNo);
		    model.addAttribute("totalpage", totalPage);
		return "/AllPoem";

	}

   前端页面AllPoem:

                1.表单:

                 

<form action="<%=basePath%>user/getAll" method="post" id="wordsform">
					<input type="hidden" name="PageNo" id="PageNo" value="1">
					<table>
						<tbody>
							<c:if test="${!empty wordlist }">
								<c:forEach items="${wordlist }" var="words">
									<tr>
										<td width="150px">${words.name }:</td>
										<td></td>
										<td width="500px">${words.content }</td>
										<td width="50px"></td>
										<td width="150px">${words.date }</td>
									</tr>
								</c:forEach>
							</c:if>
							<tr>
								<td height="39px" colspan="8" align="center" valign="middle">
									<a href="javascript:set_PageNo(1)">首页</a> <a
									href="javascript:set_PageNo(${PageNo-1 })">上一页</a> <a
									href="javascript:set_PageNo(${PageNo+1 })">下一页</a> <a
									href="javascript:set_PageNo(${totalpage })">尾页</a> 
									${PageNo }/${totalpage }
								</td>
							</tr>
						</tbody>
					</table>

				</form>

                    2.js

                  

  function set_PageNo(PageNo) {
                          	$("#PageNo").val(PageNo);
                         	$("#wordsform").submit();
                     }

    展示:


    




猜你喜欢

转载自blog.csdn.net/yiye2017zhangmu/article/details/80794809
今日推荐