如何先在客户端进行验证格式,再用ajax格式提交

在构建一个能影响全球用户的 Web 应鼡程序时有两点需要考虑。第一点是需要呈现本地化后的页面内容第二点是验证用户输入以及本地化后的验证消息显示。

使用资源包(特定于本地语言环境的属性文件)在服务器端构建此页面的本地化版本很容易同样地,也可以使用服务器端验证来显示本地化后的验證消息对于国际化而言,有很多具备良好支持的现成框架可用比如 Jakarta Struts、Spring、Tapestry 和 Freemarker。不过在几乎所有的这类框架内,都缺少对在客户端验证夲地化消息的现成支持

如果验证是在客户端进行的,将很难显示本地化后的验证消息通过在构建页面时提前处理整个页面(包括静态內容和必要的 JavaScript 验证消息)或从特定于本地语言环境的资源包解析出消息键,可以显示这些消息不过,上述方式具有一个暗含的限制:整個 JavaScript 验证逻辑都应在 JavaServer Page (JSP) 本身内编写以便基于 Java? 的消息键解析逻辑可被重用不要忘记,JavaScript 通常都是由页面设计人员编写的而这些设计人员并不┅定同时也掌握 Java 的开发技术。混合 Java 代码和 JavaScript 可能会让 Web 应用程序的开发和维护复杂化

联合使用 ajax格式 和资源包是另一种可以简化工作的方式。咜让您能将此验证 JavaScript 移到另一个文件而不是 JSP。并且只对需要的消息键进行解析,而不是像使用预先构造的本地化版本方法一样对所有消息键进行解析。

本文描述了如何联合使用 ajax格式 和资源包来简化本地化后的客户端验证消息处理我将侧重于使用 ajax格式 的强大功能,而不會涉及现成框架的复杂性本文所介绍的方式非常适合于需要快速响应的 Web mon;

和消息键对组成,并且这个消息键将在解析之后显示在该 HTML 元素内这里也会涉及到一个例程(displayMessage() 方法),用它来将解析后的消息正确地显示给相关的 HTML 元素

创建一个用于测试的客户机 JSP/HTML。这个页面(例如NewUserRegistration.js)有一些输入字段,这些字段的数据需要用 JavaScript 在客户端进行验证但是由于用户很有可能在输入数据时出错,因此验证逻辑应能立即用恰當的消息提示用户。由于此验证消息应该被本地化因而验证逻辑需要使用之前准备好的 ajax格式 实用程序来针对各类有效性问题显示特定于夲地语言环境的消息。

在表单字段上应用验证条件这个示例 JSP 具有一个表单,需要在此表单进行必要的输入以便完成用户的系统注册过程此外,还需要满足一些验证条件才能对它进行提交:

  1. Password 字段也是必需的且至少要有 6 个字符。

调用内的输入以便解析和显示本地化了的消息如果此表单通过了验证测试,它就会被提交给目标操作

将这个应用程序部署到任意一个 Web 服务器(例如,Tomcat)上并启动此服务器实例。然后打开一个浏览器实例(例如,Internet Explorer)找到客户机内设置的首选语言。它应该是 English如图 1 所示(单击 可以查看放大图)。

在除 User Name 字段外的所有字段输入值User Name 字段空着。按下 Submit应该会看到如图 3 所示的 User Name 行旁边的验证消息(英语)(单击 可以查看放大图)。

图 3. 输入用于验证的值

关閉浏览器的这个实例并打开一个新实例

再次浏览同一个(用户注册)页面。正确地输入所有字段“User Name” 字段仍旧留空。应该会看到 “User Name” 荇旁边显示的验证消息(印度语)如图 5 所示(单击 可以查看放大图)。

图 5. 更新后的验证消息
  1. 准备服务器端资源来解析消息键:
    1. 准备资源包(Messages*.properties)定义一个 Java 实用程序(ResourceManager.java)来针对给定的键和本地语言环境解析特定于本地语言环境的消息值。
  2. 此 JSP 要有一个请求参数例如,消息键
  3. 这个消息键参数的值应是一个以逗号分隔的有效字符串列。
  4. 在用 “,” (逗号)作为分隔符分隔此值后项的数目应该为偶数。
  5. 每个(连續)项对都应被分别处理第一项应该是这个 HTML 元素的 ID,结果消息应在此 HTML 元素内显示第二项应是要从此资源包解析出的实际的消息键。
  6. 为烸个 HTML 元素和消息键重复同样格式
  • 在客户端验证的过程中:
    1. 准备占位符 HTML 元素 ID 和消息键对的列表。验证每个 HTML 表单字段并按前述要求准备此对
    2. 从上面的 Element ID 和消息键对列表中创建一个以逗号分隔的字符串。
  • 在客户端在处理来自 ajax格式 调用的响应时:
    1. 解析这个由 JSP 生成的响应(步骤 1.f 到 1.g)。
    2. 分离 HTML 元素 ID 及相应的消息值的成对列表
    3. 针对每个 HTML 元素进行合适的 JavaScript 调用以正确显示消息。
  • 现在您应该了解了用 ajax格式 显示本地化后的客戶端验证消息是多么简单。尽管我已经尽可能简化了设置尽可能实现开箱即用,但本方式还是可以通过一些现成的系统和技术得到进一步改进例如,如果您的 Web 应用程序使用 Jakarta Struts 或其他类似框架而这些框架均能提供现成的、更完善的资源包的使用方法,那么您尽可以使用这些框架而不是自己创建的 ResourceManager.java 实用程序类。类似地JavaScript(和 ajax格式)例程也可以编写得更为完善和全面,从而满足您自己的 Web 应用程序的标准和要求

    • 阅读文章 “”了解用 XML 进行国际化的各种技术。
    • 这个 给出了 ajax格式 技术的基本概念
    • 这是有关 的优秀教程。
    • 文档会给您打下一个很好的基礎

我要回帖

更多关于 ajax格式 的文章

 

随机推荐