[技术] crm分页列表显示. {word笔记转html复制}
2017-01-15 23:59
288 查看
I. 客户列表页面(带有查询的分页列表显示)
A. 表单需要提交的参数:
1. 查询条件
2. 每页显示条数
3. 当前页数
B. 后台提供数据: 将一下数据封装成PageBean 对象转发到前台
1. 列表数据
a. 需要当前页数
2. 总记录数
3. 总记录数:根据查询条件
4. 总页数:需要总记录数+每页显示条数
C. Pagebean(专门做分页的功能类)
1. 新建PageBean类,封装list,currentPage,totalCount,totoalPage,pageSize
a. List list : 列表数据(from database , DAO直接查询)
b. Integer totalCount : 总记录(DAO直接查询)
c. Integer currentPage : 当前页数(页面传参)
d. Integer pageSize: 每页显示条数(页面传参)
e. Integer totalPage : 总页数(总记录数与每页显示条数计算得出)
f. 要求用有参构造传入参数totalCount,pageSize,currentPage(方便计算totalPage)
g. *因为List的封装需要依赖pageSize,所以先封装b
,c,d,e 四个属性,最后再封装List
2. 封装计算总页数totalPage的代码 (f中的构造方法代码块中实现)
1. 方案1: if 取模判断是否有余数
2. -方案2: math中的ceil方法,向上取整
3. -方案3: 数学计算
this.totalPage = (this.totalCount + this.pagesize - 1)/ this.pageSize
3. 封装校验 (防止没有传参数时报错)
a. 校验当前页数currentPage
1. 不为空 和 小于等于1 时让当前页回归第1页
a. If(currentPage==null || if(currentPage < 1 )){
this.currentpage = 1;
}
b. 校验每页显示条数
1. 如果pageSize为空,则自动将pageSize设为3
c. 当前页与总页数的判断
1. 经过a.的判断后,如果当前页(this.currentPage)大于总页数,则显示最后一页
If(this.currentPage > this.totalPage){this.currentPage = this.totalPage}
D. CustomerAction_List
1. 逻辑图
2. 创建CustomerAction 泛型为Customer
a. 继承ActionSupport, 实现模型驱动ModelDriven<Customer>
b. 创建属性 Customer customer = new Customer();
c. 重写Customer getModel(){}方法, 返回customer
d. 为了调用Service层,需要声明CustomerService
cs ; 成员变量
1. 生成cs的set方法
e. 创建方法public String list() {} 方法体重完成以下代码逻辑
1. 接收参数
a. -模型驱动,接收查询条件
b. -属性驱动,接收当前页数以及每页显示条数
2. 封装查询条件到DC (离线查询对象)
a. DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);
b. if(customer.getCust_name() != null &&!””.equals(customer.getCust_name())) (*本判断已封装到StringUtils工具类中(属于apache.lang3包) 语法为:
if(StringUtils.isNoBlank(customer.getCust_name())) )
c. dc.add(Restrictions.like(“cust_name”,”%+customer.getCust_name()+%”)); 写入b判断的代码块中
3. 调用Service执行分页逻辑 返回pageBean
a. PageBean pb = cs.getPageBean(dc,currentPage,pageSize);
4. 将pageBean放入request域中
a. ActionContext.getContext().put(“pageBean”,pb);
5. 转发到列表页面显示
return “list”;
6. 去struts.xml中配置CustomerAction
E. CustomerServiceImpl (DetachedCriteria dc, Integer currentPage, Integer pageSize)
1. 查询总记录数
a. Integer totalCount = cd.getTotalCount(dc);
2. 创建PageBean对象
3. 查询列表数据,并放入PageBean中
4. 返回PageBean对象
F. 前台
1. 显示部分:
a.
2. 逻辑部分:
a. 前台逻辑
b. 后台逻辑
II. BaseDao设计
A. 设计原理:
1.
B. BaseDao
1. 增
a. void save(T t);
2. 删
a. void delete(Serializable id); 所有id类型都是Serializable的实现类
3. 改
a. void update(T t);
4. 查
a. 根据id查
b. 查询总记录
c. 获得分页列表数据
C. BaseDaoImpl
1. 重写basedao方法
a. 获取反射,获得可获得泛型类型的父类
b. 获得运行期泛型类型
A. 表单需要提交的参数:
1. 查询条件
2. 每页显示条数
3. 当前页数
B. 后台提供数据: 将一下数据封装成PageBean 对象转发到前台
1. 列表数据
a. 需要当前页数
2. 总记录数
3. 总记录数:根据查询条件
4. 总页数:需要总记录数+每页显示条数
C. Pagebean(专门做分页的功能类)
1. 新建PageBean类,封装list,currentPage,totalCount,totoalPage,pageSize
a. List list : 列表数据(from database , DAO直接查询)
b. Integer totalCount : 总记录(DAO直接查询)
c. Integer currentPage : 当前页数(页面传参)
d. Integer pageSize: 每页显示条数(页面传参)
e. Integer totalPage : 总页数(总记录数与每页显示条数计算得出)
f. 要求用有参构造传入参数totalCount,pageSize,currentPage(方便计算totalPage)
g. *因为List的封装需要依赖pageSize,所以先封装b
,c,d,e 四个属性,最后再封装List
2. 封装计算总页数totalPage的代码 (f中的构造方法代码块中实现)
1. 方案1: if 取模判断是否有余数
2. -方案2: math中的ceil方法,向上取整
3. -方案3: 数学计算
this.totalPage = (this.totalCount + this.pagesize - 1)/ this.pageSize
3. 封装校验 (防止没有传参数时报错)
a. 校验当前页数currentPage
1. 不为空 和 小于等于1 时让当前页回归第1页
a. If(currentPage==null || if(currentPage < 1 )){
this.currentpage = 1;
}
b. 校验每页显示条数
1. 如果pageSize为空,则自动将pageSize设为3
c. 当前页与总页数的判断
1. 经过a.的判断后,如果当前页(this.currentPage)大于总页数,则显示最后一页
If(this.currentPage > this.totalPage){this.currentPage = this.totalPage}
D. CustomerAction_List
1. 逻辑图
2. 创建CustomerAction 泛型为Customer
a. 继承ActionSupport, 实现模型驱动ModelDriven<Customer>
b. 创建属性 Customer customer = new Customer();
c. 重写Customer getModel(){}方法, 返回customer
d. 为了调用Service层,需要声明CustomerService
cs ; 成员变量
1. 生成cs的set方法
e. 创建方法public String list() {} 方法体重完成以下代码逻辑
1. 接收参数
a. -模型驱动,接收查询条件
b. -属性驱动,接收当前页数以及每页显示条数
2. 封装查询条件到DC (离线查询对象)
a. DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);
b. if(customer.getCust_name() != null &&!””.equals(customer.getCust_name())) (*本判断已封装到StringUtils工具类中(属于apache.lang3包) 语法为:
if(StringUtils.isNoBlank(customer.getCust_name())) )
c. dc.add(Restrictions.like(“cust_name”,”%+customer.getCust_name()+%”)); 写入b判断的代码块中
3. 调用Service执行分页逻辑 返回pageBean
a. PageBean pb = cs.getPageBean(dc,currentPage,pageSize);
4. 将pageBean放入request域中
a. ActionContext.getContext().put(“pageBean”,pb);
5. 转发到列表页面显示
return “list”;
6. 去struts.xml中配置CustomerAction
E. CustomerServiceImpl (DetachedCriteria dc, Integer currentPage, Integer pageSize)
1. 查询总记录数
a. Integer totalCount = cd.getTotalCount(dc);
2. 创建PageBean对象
3. 查询列表数据,并放入PageBean中
4. 返回PageBean对象
F. 前台
1. 显示部分:
a.
2. 逻辑部分:
a. 前台逻辑
b. 后台逻辑
II. BaseDao设计
A. 设计原理:
1.
B. BaseDao
1. 增
a. void save(T t);
2. 删
a. void delete(Serializable id); 所有id类型都是Serializable的实现类
3. 改
a. void update(T t);
4. 查
a. 根据id查
b. 查询总记录
c. 获得分页列表数据
C. BaseDaoImpl
1. 重写basedao方法
a. 获取反射,获得可获得泛型类型的父类
b. 获得运行期泛型类型
相关文章推荐
- html显示列表分页的方法
- jQuery+json,分页显示数据列表,HTML+CSS,固定表头
- 【2015/4/19】servlet学习笔记5----显示图片和分页技术
- javaWeb笔记(六) 分页 显示分页页码列表
- [学习笔记]小型论坛功能——实现按照指定每页的行数来分页显示记录[3]
- CuteEditor Html中显示Word格式粘贴的文章[CuteEditor WordToHtml]
- ajax 笔记--不用刷新实现数据的分页显示 2 (下)
- ajax 笔记--不用刷新实现数据的分页显示 2 (下)
- .net开发笔记之八:在Html中置换datagrid控件中的显示值
- asp复制到word实现分页效果
- WAP开发笔记(1)-.net移动页面中html控件不能直接显示的解决
- 泛微OA中的显示ajax技术, CreateHtml 创建调用asp文件无刷新
- 数据分页技术(学习笔记)
- 笔记:SQL SERVER 2005中的同步复制技术(转)
- 将sharepoint中的跨网站、列表查询的结果用SPGridView分页显示
- 小五思科技术学习笔记之扩展访问列表
- ajax 笔记--不用刷新实现数据的分页显示 2 (上)
- ajax 笔记--不用刷新实现数据的分页显示
- 用PHP生成html分页列表的代码
- GridView分页显示(笔记)