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分页的更多相关文章
- Spring分页实现PageImpl<T>类
Spring框架中PageImpl<T>类的源码如下: /* * Copyright 2008-2013 the original author or authors. * * Lice ...
- SSM框架搭建过程
引入依赖的jar包(pom.xml) a. <!--Spring SpringMVC相关--> spring-webmvc b. <!--Spring事务--> sprin ...
- struts2+spring+hibernate 实现分页
在这里要感谢下这位博友发表的博文 http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html 通过对他代码的阅读,从而自己实现了网页分 ...
- [转]Spring JdbcTemplate 查询分页
原文:http://blog.csdn.net/xiaofanku/article/details/4280128 现在进行的项目由于数据库的遗留原因(设计的不堪入目)不能用hibernate.所以用 ...
- spring和mybatis集成,自动生成model、mapper,增加mybatis分页功能
软件简介 Spring是一个流行的控制反转(IoC)和面向切面(AOP)的容器框架,在java webapp开发中使用广泛.http://projects.spring.io/spring-frame ...
- Spring + Mybatis 使用 PageHelper 插件分页
原文:http://www.cnblogs.com/yucongblog/p/5330886.html 先增加maven依赖: <dependency> <groupId>co ...
- 整合Spring Data JPA与Spring MVC: 分页和排序
之前我们学习了如何使用Jpa访问关系型数据库.比较完整Spring MVC和JPA教程请见Spring Data JPA实战入门,Spring MVC实战入门. 通过Jpa大大简化了我们对数据库的开发 ...
- Mybatis分页和Spring的集成
写了一个Mybatis分页控件,在这记录一下使用方式. 在Maven中加入依赖: ? 1 2 3 4 5 6 7 8 9 <dependencies> ... <depe ...
- 集成Spring后HibernateTemplate实现分页
spring 整合 hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate ...
随机推荐
- Eureka 客户端启动报错误 Cannot determine embedded database driver class for database type NONE
用这种数据库配置就是死活连不上数据库 提示:Cannot determine embedded database driver class for database type NONE 解决方式: 启 ...
- 学习笔记:Highcharts
(Highcharts 167K: ECharts 354K: jqChart 240K),如果用于网络,Highchart最小 Highcharts 功能强大.开源.美观.图表丰富.兼容绝大多数浏 ...
- python学习笔记_week18
note 1.JS 正则 test - 判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf") # true ...
- 开源 人脸识别 openface 实用介绍 实例演示 训练自己的模型
1.OpenFace 是 卡耐基梅陇(CMU)大学的一个图像+机器学习项目,整体程序包含:人脸发现,特征提取,特征神经网络训练,人脸识别这四部分. github https://github.co ...
- C#利用反射动态调用DLL并返回结果,和获取程序集的信息
反射的基本概念: .Net Framework 中提供了反射机制,可以再加载程序运行时,动态获取和加载程序集,并且可以获取到程序集的信息 创建Assembly和Entity两个程序集,在Assembl ...
- hive表命名规范 源码规则
tablename 进来前已经把"`","."等过滤掉了,所以就是单词字符喽 \w搞定 \w包含_ 哈哈 规范就是 a-z A-Z 0-9 _ 也就是传说中的单 ...
- oracle查询重复的数据
在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是oracle中的哪一个数据文件.块.行上.在重复的记录中,可能所有列的内容都相同,但rowi ...
- oracle 相关操作
1,SqlPlus 的使用 1.01,软登入:sqlplus /nolog 1.02,登入 dba 用户:sqlplus /as sysdba 2,用户相关操作 2.01,创建用户:create us ...
- git学习入门
git: 安装 git是目前最流行的版本管理系统,分为github(公共开源,代码可随意下载)和gitlib(私有化,企业使用).
- windowsAPI之OpenProcessToken,AdjustTokenPrivileges 和LookupPrivilegeValue<转>
这三个函数主要用来提升进程的权限 1 OpenProcessToken()函数:获取进程的令牌句柄 OpenProcessToken的原型. BOOL WINAPI OpenProcessToken( ...