基于AJAX技术实现Struts校验框架(3)

http://www.sina.com.cn 2006年04月20日 15:35  天极yesky


  在此,我们把JDOM作为处理引擎并使用它生成XML消息。如图4所示,当开始校验并且所用校验框架是AJAX校验框架时,接下来要进行填充错误消息并且构建XML消息校验。

基于AJAX技术实现Struts校验框架(3)

图4.过滤和XML校验生成过程


  ErrorMessageHandler

  这个类具有XML消息构建器的功能,它基于identity和description属性来构建XML消息。在调用buildXMLMessage后,调用者就会准备文档并设置XML消息的根元素。这个类还有一个addNextXMLMessage函数,这个函数负责把其它校验消息添加进XML(见源代码中的列表1)。
AjaxValidationRequestProcessor类中的process方法负责把响应的content type设置为"text/xml"并且以字符串形式发送XML消息。该方法的代码如列表2(见所附源码)所示。

  AjaxValidationRequestProcessor类中的processValidation方法负责填充action错误并且基于XML格式约定为客户端构建消息。此函数的代码如下所示:

...
ActionErrors errors = (ActionErrors) request.getAttribute(Globals.ERROR_KEY);
Locale locale = (Locale) request.getAttribute(Globals.LOCALE_KEY);
generateXMLMessage(errors, identity, locale, sbXMLMessage);
...

  四、 客户端

  构建Taglib组件

  · AjaxJavaScriptLibraryTag:该taglib组件负责生成客户端基本的XMLHTTP控制器函数的JavaScript函数部分。

  · AjaxErrorHtmlRenderTag:该taglib组件负责在JSP页面上生成显示错误消息的区域。

  配置Taglib定义

  在开发完taglib组件后,我们需要使用如列表3(见所附源码)的方式来配置taglib的tld文件。

  五、 构建JSP和Struts配置

  为了模仿校验处理的结果,我们首先需要构建描述层-这可以通过加入我们已经构建的taglib来实现。在本文实例中,我将尽力使用Struts提供的校验规则组件和表单本身的校验功能来给出一个校验的实例。现在,我们在JSP页面中准备5个文本框。第一到第四个文本框使用校验规则配置,第5个文本框使用来自action表单的校验过程。此外,我们还需要一个提交按钮来实现提交表单后对此的模仿。注意,至此,现有的Struts校验仍然没有使用AJAX。用户接口如图5所示。

基于AJAX技术实现Struts校验框架(3)

图5.JSP校验页面

发表评论 _COUNT_条
Powered By Google
不支持Flash
·城市对话改革30年 ·新浪城市同心联动 ·诚招合作伙伴 ·企业邮箱畅通无阻
不支持Flash