spring分页
Posted menbbo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring分页相关的知识,希望对你有一定的参考价值。
1.Brand 商品品牌类
public class Brand { private Integer id; private String name; private String description; private String imgUrl; private String webSite; private Integer sort; private Integer isDisplay; private Integer pageNo=1; //页号 private Integer startRow; //开始行 private Integer pageSize = 10; //每页数 public String getAllUrl(){ return Constants.IMAGE_URL + imgUrl; } public Integer getstartRow() { return startRow; } public void setstartRow(Integer startRow) { this.startRow = startRow; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.startRow = (pageNo-1)* pageSize; //计算一次开始行 this.pageSize = pageSize; } public Integer getPageNo() { return pageNo; } public void setPageNo(Integer pageNo) { this.startRow = (pageNo-1)* pageSize; //计算一次开始行 this.pageNo = pageNo; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } public String getWebSite() { return webSite; } public void setWebSite(String webSite) { this.webSite = webSite; } public Integer getSort() { return sort; } public void setSort(Integer sort) { this.sort = sort; } public Integer getIsDisplay() { return isDisplay; } public void setIsDisplay(Integer isDisplay) { this.isDisplay = isDisplay; } @Override public String toString() { return "Brand [id=" + id + ", name=" + name + ", description=" + description + ", imgUrl=" + imgUrl + ", webSite=" + webSite + ", sort=" + sort + ", isDisplay=" + isDisplay + "]"; } }
2.dao层
public interface BrandDao { public List<Brand> getBrandListWithPage(Brand brand); //得到满足条件的所有品牌条目 public int getBrandCount();//获取总记录数 }
3.service层
public interface BrandService { public Pagination getBrandListWithPage(Brand brand); public void addBrand(Brand brand); }
@Service @Transactional public class BrandServiceImpl implements BrandService{ @Resource private BrandDao brandDao; @Transactional(readOnly = true) public Pagination getBrandListWithPage(Brand brand){ // 1.起始页 2.每页记录数 3.总记录数 Pagination pagination = new Pagination(brand.getPageNo(),brand.getPageSize(),brandDao.getBrandCount()); pagination.setList(brandDao.getBrandListWithPage(brand)); return pagination; } }
4.controller层
@Controller public class BrandController { @Autowired private BrandService brandService; @RequestMapping(value ="/brand/list.do") public String list(String name, Integer isDisplay, Integer pageNo ,ModelMap model){ StringBuilder params = new StringBuilder(); Brand brand = new Brand(); if(StringUtils.isNotBlank(name)){ //="" 和" "都为空 brand.setName(name); params.append("name=").append(name); } if(isDisplay!=null){ params.append("&").append("isDisplay=").append(isDisplay); brand.setIsDisplay(isDisplay); }else{ params.append("&").append("isDisplay=").append(1); brand.setIsDisplay(1); } brand.setPageSize(5); //如果页号是null或小于1 则重置为1 brand.setPageNo(Pagination.cpn(pageNo)); Pagination pagination = brandService.getBrandListWithPage(brand); //分页展示: /brand/list.do?name=瑜伽树&isDisplay=1&pageNo=2 String url = "/brand/list.do"; pagination.pageView(url, params.toString()); model.addAttribute("pagination",pagination); //本质还是request.setAttribute(); model.addAttribute("name",name); model.addAttribute("isDisplay",isDisplay); return "brand/list"; //参数 } }
5.jsp页面
<table cellspacing="1" cellpadding="0" border="0" width="100%" class="pn-ltable"> <thead class="pn-lthead"> <tr> <th width="20"><input type="checkbox" onclick="checkBox(\'ids\',this.checked)"/></th> <th>品牌ID</th> <th>品牌名称</th> <th>品牌图片</th> <th>品牌描述</th> <th>排序</th> <th>是否可用</th> <th>操作选项</th> </tr> </thead> <tbody class="pn-ltbody"> <c:forEach items="${pagination.list }" var="entry"> <tr bgcolor="#ffffff" onmouseout="this.bgColor=\'#ffffff\'" onmouseover="this.bgColor=\'#eeeeee\'"> <td><input type="checkbox" value="${entry.id }" name="ids"/></td> <td align="center">${entry.id }</td> <td align="center">${entry.name }</td> <td align="center"><img width="40" height="40" src="${entry.allUrl}"/></td> <td align="center">${entry.description }</td> <td align="center">${entry.sort }</td> <td align="center"><c:if test="${entry.isDisplay == 1 }">是</c:if><c:if test="${entry.isDisplay == 0 }">不是</c:if></td> <td align="center"> <a class="pn-opt" href="#">修改</a> | <a class="pn-opt" href="/brand/delete.do?id=${entry.id }&name=${name}&isDisplay=${isDisplay}">删除</a> </td> </tr> </c:forEach> </tbody> </table> <div class="page pb15"> <span class="r inb_a page_b"> <c:forEach items="${pagination.pageView }" var="page"> ${page } </c:forEach> </span> </div>
6.xml文件
<select id="getBrandListWithPage" parameterType="Brand" resultMap="brand"> select id , name ,description,img_url,sort,is_display from bbs_brand <where> <if test="isDisplay != null"> is_display = #{isDisplay} </if> <if test="name != null"> and name = #{name} <!-- 查询所有品牌时为空 --> </if> </where> order by id desc limit #{startRow},#{pageSize} </select>
显示结果:
以上是关于spring分页的主要内容,如果未能解决你的问题,请参考以下文章
FragmentStatePagerAdapter 视图分页器片段在活动重新创建后不显示
FragmentStatePagerAdapter视图分页器片段在重新创建活动后未显示
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段