通用类的抽取
一.Dao层抽取
- 在Dao的接口包里,添加一个叫IBaseDao的接口
- IDepDao里的所有方法,都复制到IBaseDao里去
- IBaseDao上加上泛型支持 IBaseDao<T>
- 替换所有的Dep为大写的T, dep替换为t , 快捷键ctrl + f
- 修改IDepDao ,
- 创建BaseDao,复制DepDao里的方法到BaseDao里去 , 替换所有的Dep为大写的T, dep替换为t
- 发现报错 , T.class
解决:
定义entityClass属性
把T.class替换为entityClass - 添加无参构造方法,在构造方法里实现这个entityClass的具体类型
二.Biz层抽取
- 创建IBaseBiz<T>接口
- 把IDepBiz里的方法,复制到IBaseBiz里
- 替换Dep为T,dep为t
- 改造IDepBiz,删除其下所有的方法,继承IBaseBiz<Dep>
- 创建BaseBiz实现类
- 复制DepBiz里的方法到BaseBiz里
- 替换DepDao为BaseDao,depDao替换成baseDao
- 替换Dep为T, dep为t
- DepBiz改造一下
三.Action层抽取
- 创建BaseAction,将DepAction里的所有方法复制过来
- 替换DepBiz为BaseBiz, depBiz为baseBiz
- 替换Dep为T, dep为t
- DepAction改造一下
四.前端抽取
- JS抽取
- 创建crud.js文件
- 把dep.html里的js内容都复制到crud.js
- Dep.html里先定义 name="dep" , columns=[] ; 因为他们是具体某个实体类的私有内容
- 替换 'dep_ 为 name+'_
- Dep.html修改 dep 改为 t
五.员工管理的完善
- 查询页面,不显示密码
- 性别显示, 在emp.html的 columns中,field的gender中,加上格式化器
- 日期格式化
- - 引入date.js文件
- - 添加格式化器 - 显示部门:
- 配置映射文件 many-to-one
- 修改Emp.java实体类 创建dep对象,因为是多对一, private Dep dep; 提供getter setter方法
- 给部门加上格式化器
- 部分部门名称没有显示, fastJSON使用了循环引用
所以需要禁用这一功能, listByPage, list一起修改
- 配置映射文件 many-to-one
六.员工数据编辑
- 性别输入改为单选按钮
- 日期输入控件, class="easyui-datebox" , editable="false"是不可编辑
- 部门下拉列表