crm项目总结
目录
list.jsp ->- 点击筛选
页面输出:
- 查询条件
- 当前页数
- 每页显示条数
后台向页面输入(PageBean):
- 客户列表(dao)
- 当前页数(前台传入)
- 总记录数(dao)
- 每条显示页数(前台传入)
- 总页数(封装PageBean时根据3和4计算)
- CustomerAction :
- 封装离线查询对象
- 调用Service分页
- 将分页数据放入request域内
- struts跳转显示页面
- CustomerService:
- 调用Dao获取总记录数
- 封装PageBean(包含起始索引,分页列表等)
- 调用Dao的分页功能(参数:离线查询对象,起始索引,每页显示条数)
- 返回PageBean
- BaseDao:BaseDao为CustomerDao,LinkManDao,UserDao抽取得到的,将增删改查分页等功能抽取到BaseDao接口中,在BaseDaoImpl中实现,那么以后再实现Dao时只需要继承通用接口的实现即可。此处有反射代码:
private Class clazz;// 用于接受运行期间泛型类型
public BaseDaoImpl() {
// 获得当前类型的带有泛型类型的父类
ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass();
// 获得运行期间的泛型类型
clazz = (Class) ptClass.getActualTypeArguments()[0];
}
- 前台list页面
- PageBean数据显示
- 隐藏域内放置当前页数和每页显示条数(value为与PageBean对象对应的属性)
- 书写翻页(跳页)js函数:①将跳页之后的页码放入隐藏域中;②表单提交
- 书写改变页面显示条数的js函数:①将改变后的每页显示条数放入隐藏域;②表单提交
ajax实现三个客户属性的下拉选(查找数据字典)
技术难点:
- 页面内js函数的参数
- 数据的回显
实现:
- JQuery页面加载完成时间内书写加载下拉选的函数,参数包括:①数据字典类型;②将下拉选放入的标签i的d;③生成下拉选时,select标签的name属性值(struts提交时封装到Customer对象);④需要回显时,选中哪个option;
- 下拉选js函数内创建select对象,追加拼写html语句(①<select />;②提示选项<option value=‘-请选择--’/> );
- 书写JQuery的ajax函数,访问数据字典Action,获得Json;
- 遍历Json:①拼装<option>;②判断是否为参数4,若是,增加选中属性;
- 将拼装后的语句放入参数2。
- 数据字典Action
- 数据字典Service
- json串转换
- 数据字典Service --> 数据字典Dao
- 根据数据字典类型查询数据库
- 返回list数据
客户保存(修改)
- CustomerAction(跳转list显示页面) --> CustomerService --> BaseDao的saveorupdate方法
文件上传(Struts2)
未完,更新中。。。