快速业务通道

用JSON处理缓存 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
如何将验证消息分组到 JSON 组中以及如何访问这些验证消息。

传统方法

现在,当用户输入的车辆数据为 40CC 时,程序必须显示一条消息,说明输入的数据不在有效的 CC 范围内。您可以用 清单 1 中的代码简单地显示这条消息:

清单 1. 传统代码

if(cc < <%= minCC %> || cc > <%= maxCC %>) {    alert(<%= ResourceList.vehicleCCRangeMsg >);    }

ResourceList 是一个服务器端类,该类中含有关于车辆的国际化消息(如 vehicleCCRangeMsg)。这种方法解决问题时略显混乱:

在这种方法中,您将把服务器端代码添加到所有客户端验证函数中,以检查条件并显示消息。

如果更改了元数据和消息(例如服务器端类或变量)的组织方法,您将会为更改使用这些元数据和消息的客户机脚本验证函数感到十分头痛。

用JSON处理缓存(3)

时间:2011-02-07 IBM Bakul L. Patel

JSON 能帮助您做什么?

如果只需在条件语句和警报中引用一个 JavaScript 变量而不是服务器端代码,您感觉怎么样?不需要把服务器端代码包含在 JavaScript 中,而保存的服务器端元数据和消息中的更改也不会影响客户端脚本。这种方法太棒了,是不是?好的,那就是使用基于 JSON 缓存元数据时要做的。

您将使用一个 JavaScript 对象把我们的验证数据和消息分组到一个层级中。然后就像访问层级的 JavaScript 对象一样访问这些消息。就是这样,您已经做到了!

当此 JSON 元数据对象就绪后,先前的 JavaScript 代码片段将类似于 清单 2。

清单 2. 带有 JSON 元数据缓存对象的警报

if(cc < vehicleValidationsMetadata.CC.minCC ||            cc > vehicleValidationsMetadata.CC.maxCC) {    alert(vehicleValidationsMetadata.CC.RangeMessage);    }

现在,问题是谁来准备 JSON 元数据对象?嗯,只有服务器能做这项工作。服务器必须生成这个 JSON 对象,并将其提供给客户机(浏览器)。一些 Java API 可以帮助您准备此类(事实上是任意一类)JSON 对象。请参阅 参考资料 来查看那些 API。

生成 JSON 元数据对象的典型方法为:

为实体及其验证消息准备一个层级 Java 对象。

对这些实体及其验证消息调用 toString()。这些实体及其验证消息最有可能把一个 JSON 形式的字符串提供给您。

将该字符串另存到一个请求范围内。

在 JSP 中,获取该字符串,并将其指派到 JavaScript 变量值的大括号内。

最终的车辆元数据对象看上去就会像 清单 3 一样。

清单 3. 验证元数据 JSON 对象

var vehicleValidationsMetadata = {    "BrandName":{           "CanContainDigits":{false},         "MaxWords":{2},        "FormatMessage":{"Brand Name cannot contain digits."},       "WordLimitMessage":{"Brand Name cannot contain more than two words"}      }, "RegistrationNumber":{        "CanContainAlphabets":{false},         "CanContainDigits":{"true"},          "FormatMessage":{"Registration Number can contain only digits."}    }, "CC":{         "minCC":{50},          "maxCC":{5000},          "FormatMessage":        {"CC can only be numeric"},          "RangeMessage":{"CC can be within range of 50 and 5000"}    } }

用JSON处理缓存(4)

时间:2011-02-07 IBM Ba

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号