您的位置:首页 > 编程语言 > Java开发

java二

2017-02-15 23:34 232 查看
第 3 章
完成基础模块的开发

一、通用类抽取
(一)DAO
接口及类通用部分抽取
1.DAO 接口抽取(1)建立
IBaseDao
接口,将
IDepDao(部门列表接口)的内容拷贝到这个接口里,将实体类替换为
T ,
批量替换要注意,区分大小写.让
IDepDao
继承自 IBaseDao,删除掉所有的方法
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
2.DAO 类抽取
(1)创建
BaseDao
继承自 HibernateDaoSupport
类,将
DepDao 中的方法复制过来。
(2)添加泛型
T
(3)替换类
Dep
为 T ,dep
为 t
(4)
将 getDetachedCriteria
方法改为公有的空方法、 因为此方法里是对查询条件的构建,无法提取到父类,只能有子类去实现。
(5)处理
T.class
问题
T
本身是泛型,是不能.class ,如何处理呢?我们可以先定义一个
entityClass的属性然后,将
T.class
替换为 entityClass
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090下面就是
entityClass
如何构建了,我们写个构造方法,在方法体中写下列代码
Typ
e type=getClass().getGenericSuperclass();//得到子类的
class
的父一级 Class
ParameterizedType ptype=(ParameterizedType)type;//可以得到泛型类型的
TYPE
Type[] types= ptype.getActualTypeArguments();//得到所有泛型的类型
entityClass
=(Class<T>) types[0];
//取第一个泛型的类型
BaseDao
完成了,我们开始修改
DepDao修改继承父类为 BaseDao除
getDetachedCriteria
之外的其它方法全部删除。修改
getDetachedCriteria 方法的访问修饰符为
protected
或 public测试看是否成功吧?抽取之后的
dao
是不是清爽很多呀!接着来!

(二)Biz
接口及类通用部分抽取
1.Biz 接口抽取抽取后,修改
IDepBiz,
删除所有方法,继承自 IBaseBiz
2.Biz 类抽取先替换这部分
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090替换为下面代码, 改成父接口所有的
depDao
改为 baseDao所有的
Dep
改为 T ,所有的
dep
变量改为 t
BaseBiz
完成后,再修改 DepBiz
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
OK
了,测试一下吧。
(三)action
类通用部分抽取修改业务逻辑层接口的声明改成下列代码:把所有的
depBiz
替换为 baseBiz添加泛型
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090替换所有的
Dep
为 T dep
为 t
get
方法里强转修改
write 的访问修饰符为
public
我们再修改
DepAction 让其继承自
BaseAction ,并泛型实体
测试一下,我们会发现列表 、删除 是可以用的,但是点修改,无法查询出数据是什么原因呢??
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090通过火狐浏览器 我们看一下 ,返回的
json
变成了 t.name而我们的表单是我们把表单的
name
修改为 t.
形式的试一试?测试
OK 了,我们把查询表单也修改一下
(四)JS
通用部分抽取
1、在
js
文件夹建立 crud.js, 在将
JS
中代码复制到 crud.js
中,将可能变化的部分改为变量,替换
crud.js 中变量部分(1)修改页面,设置变量
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090(2)修改
crud.js,替换变量替换
URL
为如下形式其它的增删改的
URL 也参考此模式,替换
datagrid 的列定义:
二、代码生成器(扩展)详见文档《代码生成器》
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
三、员工管理的完善(重点)
(一)完善列表显示效果
1.去掉密码列如图所示,密码出现在列表中不符合常理,应该去掉密码的显示(1)打开
emp.html
删除下图红线一行。(2)刷新浏览器,看到此列已被删除。
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090虽然在页面上无法看到密码了, 但是输出
json
的 action
还是可以看到密码数据的这是很不安全的,怎么办呢?
我们可以通过
fastJSON 给我们提供的
JSONField注解的 serialize
属性控制是否对此列序列化。
2.显示性别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: