继续昨天的 BeanFactory 工厂设计,精彩继续······
1. init() 方法需要完成读取 properties 配置文件,遍历所有元素,根据类名生成具体类的实例,最后 以name 为key ,以生成的实例为value 存放到beans 中
2. 遍历Properties 文件:
for (Object obj:prop.keySet()){
String key = (String)obj;
String value = prop.getProperty(key);
}
3.BeanFactory 在调用 init() 初始化方法的时候,无法控制 DAO 和 Service 初始化的顺序,因为可能导致空指针异常的发生,解决的方法是将 DAO 和 Service 独立成两个 properties 文件,调用初始化方法时先初始化 DAO ,再初始化 Service.
到这步, BeanFactory 工厂剩下的工作基本完成了,大家可以根据我昨天提到的思路自己尝试一下。其实知识点在以前的 java 基础和 javaweb 中都已经学到,这里,重点在于实际开发中 MVC 开发模式的思路分析,也是汤老师的精妙之处,讲的非常细致。
下面是下午关于版面设计的相关内容:
4. 一般情况下,所有转到 .do 的请求都需要进行重定向,例: <forward name="toList" path="/admin/category.do?method=list" redirect="true"></forward>
5. 一个小技巧,在 Struts 的重写 Action 方法时,找不到默认 Action 方法的参数,这时,需要 F3 键导入 Struts 源码,然后重新重写 Action 方法
6. 对于一个 DispatchAction 而言,有的 Action 需要对 Form 进行验证,有的则不需要,这时,在 Struts 配置文件中更改 validate 属性为 false ,在具体需要进行表单验证的地方重写 validate 方法就 OK 了
7. 显示层在传入 Action 参数时可以使用隐藏域 例: <html:hidden property="menthod" value="add"/>
8. Struts 提供的 <html:rewrite/> 标签和 <html:link/> 标签可以动态生成链接;表单提交时,可以用隐藏域传递参数,例: <html:hidden property="method" value="edit"/>
9. J2EE 中每一次单独的请求对应一个 Action ,由 Action 负责准备转发页面。
10. 表单验证可以使用 Apache 组织提供的 commons-lang 工具包,其中的 StringUtils 类的 isBlank() 方法表示某个值为空或者空字符串。
ITCASTBBS 项目后续细节请大家继续关注明天的博客更新,谢谢大家一直以来的支持!