您的位置:首页 > Web前端 > HTML

[技术] 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.    获得运行期泛型类型

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: