您的位置:首页 > Web前端 > JavaScript

传智播客--教育办公系统的环境搭建,登陆的JavaScript验证,简单验证,复杂验证

2010-02-03 20:26 295 查看
教育办公系统是由佟刚老师讲的.呵呵,我相当喜欢听佟老师的课.讲解自然而且有激情.教育办公系统是以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"> 进行显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: