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分页的更多相关文章

  1. Spring分页实现PageImpl<T>类

     Spring框架中PageImpl<T>类的源码如下: /* * Copyright 2008-2013 the original author or authors. * * Lice ...

  2. SSM框架搭建过程

    引入依赖的jar包(pom.xml) a. <!--Spring SpringMVC相关-->  spring-webmvc b. <!--Spring事务-->  sprin ...

  3. struts2+spring+hibernate 实现分页

    在这里要感谢下这位博友发表的博文 http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html 通过对他代码的阅读,从而自己实现了网页分 ...

  4. [转]Spring JdbcTemplate 查询分页

    原文:http://blog.csdn.net/xiaofanku/article/details/4280128 现在进行的项目由于数据库的遗留原因(设计的不堪入目)不能用hibernate.所以用 ...

  5. spring和mybatis集成,自动生成model、mapper,增加mybatis分页功能

    软件简介 Spring是一个流行的控制反转(IoC)和面向切面(AOP)的容器框架,在java webapp开发中使用广泛.http://projects.spring.io/spring-frame ...

  6. Spring + Mybatis 使用 PageHelper 插件分页

    原文:http://www.cnblogs.com/yucongblog/p/5330886.html 先增加maven依赖: <dependency> <groupId>co ...

  7. 整合Spring Data JPA与Spring MVC: 分页和排序

    之前我们学习了如何使用Jpa访问关系型数据库.比较完整Spring MVC和JPA教程请见Spring Data JPA实战入门,Spring MVC实战入门. 通过Jpa大大简化了我们对数据库的开发 ...

  8. Mybatis分页和Spring的集成

    写了一个Mybatis分页控件,在这记录一下使用方式. 在Maven中加入依赖: ? 1 2 3 4 5 6 7 8 9 <dependencies>   ...     <depe ...

  9. 集成Spring后HibernateTemplate实现分页

    spring 整合 hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate ...

随机推荐

  1. springBoot属性配置和使用

    Spring Boot 属性配置和使用 1.添加属性文件 application.properties (名字固定) 2.访问端口生效 3.更多配置参考 # ===================== ...

  2. Hive Ntile分析函数学习

    NTILE(n) 用于将分组数据按照顺序切分成n片,返回当前记录所在的切片值 NTILE不支持ROWS BETWEEN,比如 NTILE(2) OVER(PARTITION BY cookieid O ...

  3. mybatis四(动态sql)

    <1><select id="selectUserByConditions" parameterType="user" resultType= ...

  4. mybatis二(参数处理和map封装及自定义resultMap)

    .单个参数 mybatis不会做特殊处理. #{参数名/任意名}:取出参数值. .多个参数 mybatis会做特殊处理. 多个参数会被封装成 一个map. key:param1...paramN,或者 ...

  5. 1. 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost

    在服务器上打开mysql命令行,依次执行下面这两句: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRA ...

  6. js对象及元素复制拷贝

    1.数组及对象拷贝: 浅拷贝var b=$.extend(false,{},a);//对象浅拷贝 var a={aa:111,bb:{bb1:22}}; var b=$.extend(false,{} ...

  7. <基础> PHP 数组操作

    array_filter — 用回调函数过滤数组中的单元 ( 如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中.数组的键名保留不变 ) array a ...

  8. jquery 全选操作

    $(function(){ $("#checkedAll").change(function(){ if(this.checked){ $(".checkSingle&q ...

  9. day44-pymysql模块的使用

    pymysql模块的使用 本节重点: pymysql的下载和使用 execute()之sql注入 增.删.改:conn.commit() 查:fetchone.fetchmany.fetchall 一 ...

  10. FireDac 组件说明一

    TFDManager 连接定义和Connect连接管理  TFDConnection 数据库连接组件,支持三种连接方式:1.持久定义(有一个唯一名称和一个配置文件,可以由FDManager管理) 例: ...