教育办公系统是由佟刚老师讲的.呵呵,我相当喜欢听佟老师的课.讲解自然而且有激情.教育办公系统是以jQuery的使用很多.在这个项目里会多以后工作中碰到的大多数的jQuery情况都会有介绍,并给出相应的解决方案.而且这个项目是9天,时间很长.大家都知道传智的课一天要讲好多的内容,这个项目一下就讲9天还真担心有点跟不上啊,不过还好.这个项目完事就有一个过年放假,我们可以利用好这个放假.多多练习和吸收项目中的精华.
1. 搭建 SSH-1 开发环境:
1). 加入 struts:
①. 额外导入 struts-1.3.8/lib/struts-extras-1.3.8.jar
②. 不能直接复制 struts 例子程序中的 web.xml 文件, 那样 将导致 el 不可用.
2). 加入 hibernate:
①. 导入 jar 包. 其中 struts 的 antlr-2.7.2.jar 版本较低, 需要删除.
②. 在 classpath 下加入 hibernate 的 hibernate.cfg.xml 文件.
3). 加入 spring:
①. 导入 jar 包. 其中 struts 的 commons-logging-1.0.4.jar 版本较低, 需要删除.
②. 新建配置文件.
4). spring 整合 struts:
5). spring 整合 hibernate:
①. 加入 c3p0 数据源: 导入 jar 包和数据库驱动
②. 在 spring 中配置 hibernate 的 SessionFactory 对象(使用 hibernate.cfg.xml 配置文件)
③. 配置 hibernate 事务
6). 进行单元测试
7). 在 web.xml 文件中配置 spring 提供的字符编码过滤器
2. hibernate 的 domain 映射文件注意:
1). 在双向 1 对 多时, 尤为注意: 在 1 的一端映射时 set 节点的 table 和 key 子节点, 它们需要和 多 的一方存在某种一致
2). 在双向 1 对 1 映射时, one-to-one 端的 property-ref 属性.
3). Resume 的 jobHistories 时组件集合.
3. 配置 hibernate 的二级缓存:
1). 加入 jar 包
2). 加入配置文件
3). 在 hibernate 中启用二级缓存
4.登录页面
1)使用 js 的正则表达式进行前台验证:
要使用 struts 的 validation 框架进行服务器端验证, 所以使用继承 ValidatorForm
一个模块尽可能使用一个 FormBean, 如果使用 DispatcherAction, 无法实现对同一个 FormBean 的多样化验证,
使用 MappingDispatcherAction 作为 Action 的父类
2)前台 js 验证
①: loginname 和 loginpassword 字段除去前后空格不能为空
②: loginname 和 loginpassword 字段除去前后空格, 不能少于 6 个字符
③: loginname 中不能包含特殊字符, 即以字母开头, 后边还可以包含数字和_
方案:
①: 需要自己编写 js 的 trim() 方法, 以去除前后空格
②: 需要针对 "不能包含特殊字符, 即以字母开头, 后边还可以包含数字和_" 编写一个正则表达式, 然后利用 js 进行验证.
解决:
①. 在 js 中定义正则表达式的基本语法:
var reg = /pattern/[flags];
②. js 中关于正则的方法:
rgexp.test(str): 返回一个 Boolean 值, 它指出在被查找的字符串中是否存在模式
String 对象的 replace: 该方法可以用另一个字符串(第二个参数)来替换某个子串(第一个参数)的所有匹配
③. trim() 方法:
//1. 定义一个前后为空格的正则表达式 :
var reg = /^/s*|/s*$/g;
//2. 定义 trim 函数, 把和定义好的正则匹配的字符替换为 ""
function trim(str){
var reg = /^(/s*)|(/s*)$/g;
return str.replace(reg, "");
}
④. loginname 中不能包含特殊字符, 即以字母开头, 后边还可以包含数字和_:
//1. 定义正则表达式: 不能包含特殊字符, 即以字母开头, 后边还可以包含数字和_
var reg1 = /^[a-zA-Z]/w+/w$/gi;
//2. 使用正则表达式的 test() 方法进行判断.
var test1 = "1asd";
alert(reg1.test(test1));
5.使用 struts 的 validation 框架进行服务器端简单验证:
1). 在 struts-config.xml 文件中声明使用 validator 插件
2). 配置 validation.xml 文件.
3). 利用 struts 的 validation 框架执行验证时, 若验证失败, 那么在 ActionErrors 中的 ActionMessage 对应的 key 为被验证的
字段的字段名
3). 重写 Validation 框架的 FieldChecks 类的 validateMinLength 方法以去除前后空格: 主要目的是提供修改源代码的一种方法.
4). 若验证不通过返回到 input 属性对应的页面, 此时的 loginname, loginpassword 是去掉前后空格的.
6.服务器端复杂验证: 用户名和密码是否匹配
①: 用户名不存在, 提示信息为: "用户名不存在"
②: 用户名存在, 但用户名和密码不匹配, 提示信息为: "用户名和密码不匹配"
③: 匹配, 返回请求页面
方案:
使用 struts 的声明式异常来转发页面和显示提示信息.
解决:
由 EmployeeService 的方法抛出异常, Action 不进行处理, 而由 struts 框架根据当前的 action 节点配置来进行相应的处理:
如果出现对应的异常, 会利用当前 excpeption 配置节点的 key 生成对应的 ActionMessage 对象, 再放入 ActionMessages 中,
把页面派发到 input 对应的页面中, 在前台页面利用 <html:errors property="key"> 进行显示