简化 Ajax 和 Java 开发,第 3 部分
2008-08-27 10:43
423 查看
在本系列的第 1 部分,您了解了如何生成用来发送 Ajax 请求和处理 Ajax 响应的 JavaScript 代码。第 2
部分展示了如何使用约定和 JSP 标记文件创建 HTML 表单以最小化设置和配置。在本系列的第 3 部分中,您将了解如何开发基于 JavaScript
的客户端验证器和服务端验证器,后者被实现为支持 JavaScript 客户端验证器的 JSP
标记文件。此外,您还将了解如何使用资源包,它们会在更改后自动重载,而不需要重启应用程序。
客户端验证十分有用,因为它减少,甚至不需要将表单返回给用户以改正错误。但是,基于 JavaScript
的验证还不够,因为如果数据通过程序提交给服务器,或用户浏览器禁用了 JavaScript,这种验证都会被绕开。本文展示如何实现客户端和服务器端验证。
创建客户端验证器的层次结构
本节展示如何使用构造函数和 JavaScript 中的原型来构建对象层次结构,用于验证用户在 Web
浏览器中的输入。本节的所有代码都可以在示例应用程序的(参见 下载
部分)
开发基础验证器
在 JavaScript 中,可以结合使用函数和
个参数:表单名称、元素名称、ID 和消息。这些参数的值作为属性存储在当前对象中。
同一个构造函数创建的对象可以共享属性,这些属性存储在
中,
引擎首先在对象的成员中查看。如果没有找到,引擎就会验证对象的原型(对象可能具有自己的原型)。因此,该原型链可用于实现继承(在后面讨论)。在本文的示例中,
是对象层次结构的基础。
清单 1. Validator() 构造函数
任何 JavaScript 函数都可以成为对象的方法。只需在对象构造函数中使用
清单 2. 验证器的 getFormValues() 方法
本文转自IBM Developerworks中国
请点击此处查看全文
部分展示了如何使用约定和 JSP 标记文件创建 HTML 表单以最小化设置和配置。在本系列的第 3 部分中,您将了解如何开发基于 JavaScript
的客户端验证器和服务端验证器,后者被实现为支持 JavaScript 客户端验证器的 JSP
标记文件。此外,您还将了解如何使用资源包,它们会在更改后自动重载,而不需要重启应用程序。
客户端验证十分有用,因为它减少,甚至不需要将表单返回给用户以改正错误。但是,基于 JavaScript
的验证还不够,因为如果数据通过程序提交给服务器,或用户浏览器禁用了 JavaScript,这种验证都会被绕开。本文展示如何实现客户端和服务器端验证。
创建客户端验证器的层次结构
本节展示如何使用构造函数和 JavaScript 中的原型来构建对象层次结构,用于验证用户在 Web
浏览器中的输入。本节的所有代码都可以在示例应用程序的(参见 下载
部分)
valid.js文件中找到。
开发基础验证器
在 JavaScript 中,可以结合使用函数和
new操作符来创建对象。“构造函数” 必须使用
this来恰当地初始化对象属性。清单 1 给出了
Validator()函数,该函数有 4
个参数:表单名称、元素名称、ID 和消息。这些参数的值作为属性存储在当前对象中。
同一个构造函数创建的对象可以共享属性,这些属性存储在
prototype对象中。在清单 1
中,
defaultMsgIndex是所有实例共享的一个属性,这些实例由
new Validator(...)创建。当您试图访问属性或对象的方法时,JavaScript
引擎首先在对象的成员中查看。如果没有找到,引擎就会验证对象的原型(对象可能具有自己的原型)。因此,该原型链可用于实现继承(在后面讨论)。在本文的示例中,
Validator
是对象层次结构的基础。
清单 1. Validator() 构造函数
function Validator(formName, elemName, outId, msg) { if (formName) this.formName = formName; if (elemName) this.elemName = elemName; if (outId) this.outId = outId; if (msg) this.msgList = ["", msg]; } Validator.prototype.defaultMsgIndex = 0; |
this.methodName = functionName。由于方法通常可以被同一个构造函数创建的所有实例共享,所以可以将该方法与构造函数的原型进行关联。在这里可以通过使用
constructorName.prototype.methodName实现,如清单 2 所示:
清单 2. 验证器的 getFormValues() 方法
本文转自IBM Developerworks中国
请点击此处查看全文
相关文章推荐
- 简化 Ajax 和 Java 开发,第 3 部分: 基于 DOM、JavaScript 和 JSP 标记文件构建 UI 特性
- 简化 Ajax 和 Java 开发,第 1 部分: 用 JSP 标记文件动态生成 JavaScript 代码
- 简化 Ajax 和 Java 开发,第 4 部分: 使用 JSP 标记文件创建 JSF 样式的组件
- 简化 Ajax 和 Java 开发,第 2 部分: 使用约定最小化设置
- 简化 Ajax 和 Java 开发,第 1 部分: 用 JSP 标记文件动态生成 JavaScript 代码
- 简化 Ajax 和 Java 开发,第 2 部分:使用约定最小化设置和配置
- 简化 Ajax 和 Java 开发,第 2 部分: 使用约定最小化设置和配置
- 简化 Ajax 和 Java 开发之第 4 部分:用 JSP 标记文件创建 JSF 样式的组件
- Java Web 高性能开发,第 3 部分: 网站优化实战
- 简化Ajax和Java开发
- 简化Ajax和Java开发
- Java Web 高性能开发,第 3 部分: 网站优化实战
- 简化Ajax和Java开发
- Java Web 高性能开发,第 3 部分: 网站优化实战
- 简化Ajax和Java开发
- Rational Functional Tester Proxy SDK 开发,第 3 部分: 使用 Proxy SDK 扩展 Java GUI 组件可捕获的验证数据
- Java Web 高性能开发,第 1 部分: 前端的高性能
- 掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应
- json-lib 简化AJAX开发过程。
- zStack 扩展开发流程-zstack-java部分