一,模糊查询,条件查询,分页
。
在mvc 层中 ,分页的赋值等,都写在service层,原因是在service层设置了事务,如果程序有错。service层具有回滚,但是controller层并不具备。
一个通用的pageUtil,可以对多个类和多个页面进行分页,pageUtil可以为被继承的方式来进行分页。在controller层中,获取参数也可以直接用pageUtil或者被继承的类来直接获取。
例:一个商品界面的模糊,按条件分页查询:
商品通过模糊名字和商品价位查询
1.写一个通用的pageutil类:
private Integer currPage = 1;
private Integer pageSize = 4;
private Integer count;
private Integer totalPage;
private List<?> data;
list的泛型用? 增加通用性。 当前页currPage 初始值设为1 ,每页条数pageSize 设为4
public PageUtil(Integer currPage, Integer count, List<?> data) {
this.currPage = currPage;
this.count = count;
this.data = data;
// 计算总页数
this.totalPage = this.count % this.pageSize == 0 ? this.count / this.pageSize : this.count / this.pageSize + 1;
if(this.totalPage == 0)
this.totalPage = 1;
}
用有参函数给5个赋值,参数只有三个,通过构造函数计算其他变量。
注意:计算分页的起始位置因为是通过pageutil对象来进行传值,在mapper.xml文件里的limit 语句 并不能计算分页的起始位置:所以写一个get方法
/**
* 计算分页的起始位置
* @return
*/
public Integer getStart() {
return (this.currPage - 1 ) * this.pageSize;
}
写一个ProductQuery类,搜索类,继承PageUtil方法。
@Alias("pq")
@Setter@Getter@ToString
public class ProductQuery extends PageUtil {