快速业务通道

J2EE表现层设计思考 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
和模块化。一个验证的方法都是和用户某个特定的form相关,没有共同的代码来处理常见的操作,例如必填的字段或者只可以使用数字的字段。在这种情况下,当某个字段被用在多个不同的form,并且是一个必填的字段时,它都是在应用中独立处理的。这个策略实现起来相对容易,并且效率也高,不过当应用变大时,就会带来重复代码的问题。

要提供一个更灵活的、可重用的和易于维护的方法,数据模型应该作更大的抽象。这个方式就是下面提到的“根据抽象类型来验证,form-centric验证的例子见例子3.4。

Example 3.4 Form-Centric Validation /**If the first name or last name fields were left blank, then an error will be returned to client. With this strategy, these checks for the existence of a required field are duplicated. If this valid- ation logic were abstracted into a separate component, it could be reused across forms (see Validation Based on Abstract Types strategy)**/ public Vector validate() { Vector errorCollection = new Vector(); if ((firstname == null) || (firstname.trim.length() < 1)) errorCollection.addElement("firstname required"); if ((lastname == null) || (lastname.trim.length() < 1)) errorCollection.addElement("lastname required"); return errorCollection; }

J2EE表现层设计思考(6)

时间:2010-07-08

抽象类验证

这个方法可应用在客户端或者服务器端,不过在一个基于浏览器或者瘦客户端的环境下,最好应用在服务器端。

输入和限制的信息由模型状态中抽象出来并且放到一个通用的架构中。这样将模型的验证和模型正在使用的应用逻辑分离开来,从而减少了它们的耦合。

模型验证通过将元数据及限制和模型状态作对比进行。模型的元数据和限制通常可以通过一些简单的数据存储访问到,例如一个属性文件。这种方法的好处是系统更通用了,因为它将状态和限制的信息由应用逻辑中分离出来。

例如有一个组件或者子系统封装验证的逻辑,这些逻辑包括判断一个字符串是否是空的,一个数字的输入在某个范围,或者是一个格式化为某种方式的字符串等。当不同的应用组件需要验证某个模型的不同方面时,每一个组件并不需要写自己的验证代码。取而代之的是,使用集中式的验证技术。集中式的验证技术可以通过一些方式设置,例如通过编程,一些发生器或者通常声明、使用配置文件等。

这样验证的技术就更加通用,它集中在模型的状态和它的需求,而与应用的其它部分无关。使用这个方法的一个缺点是效率和性能要受到影响,而且,通常更通用的方法,虽然功能更强大,但是理解和维护起来有点难懂。

以下是一个例子。一个使用XML的配置文件描述了各种的验证,例如“必填的字段”,“要求全部是数字的字段”等。此外,可以设计每个验证的管理类。最后,一个影射将HTML表格的值和某类特别的验证对应起来。验证某个特定字段的例子代码如例子3.5所示。

例子 3.5 Validation Based on Abstract Types

//firstNameString="Dan" //formFieldName="form1.firstname" Validator.getInstance().validate(firstNameString, formFieldName);

Helper Properties--完整性和一致性

JavaBean Helper类通常是用来保存一个客户请求传送过来的中间状态。JSP的运行引擎提供了一个技术,可以自动地将这些参数值由一个servlet请求对象拷贝到这些JavaBean的helper对象的属性中。JSP语法如下所示:

<jsp:setProperty name="helper" property="*"/>

上面的语句告诉JSP引擎将所有匹配的参数值拷贝到一个JavaBe

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号