使用AJAX的Struts验证框架(1)
实时数据验证是AJAX技术的一大优势之一。通过应用此技术,struts验证框架将增强struts MVC,并使Web应用程序更接近于桌面应用程序。
此验证框架用于验证字段。有许多在Web应用程序上进行验证的方法。这些方法可分为两类:服务器端方法和客户端方法。Struts验证框架是面向基于Java的Web应用环境的最佳框架之一。它能够配置应用程序,方法是使用服务器端验证和错误消息,此错误消息在处理请求时呈现在调用的验证流程上,它还能够进行客户端验证,方法是使用请求页面上呈现的JavaScript。
AJAX是一种JavaScript技术,它能够异步呼叫服务器并获取XML文档,这类文档最近非常流行。其用途之一就是实时数据验证。
本文关注使用AJAX增强现有struts验证框架。必须开发几个组件(例如控制器),以选择验证框架,并呈现特定格式的消息(用于客户端)和标签库(处理错误消息呈现)。
必要条件需要一个具有Eclipse和Tomcat应用服务器的Windows系统。请确定已在操作系统中注册了MSXML 3.0 ActiveX对象。还需要Struts库(http://struts.apache.org)和JDOM库(www.jdom.org),以用于XML开发(参见图1和图2)。

图1

图2
服务器端场景 StrustsActionServlet我们必须扩展来自org.apache.struts.action.ActionServlet的类,以获得servletMapping变量,此变量存储关于如何针对动作类将该扩展格式化为浏览器地址形式的动作路径的信息。当添加代码时,我们必须将web.xml配置为应用服务器的Web应用程序描述符。
web.xml配置如下:
... |
public class StrutsActionServlet extends the ActionServlet.
{
public String getServletMapping() {
return this.servletMapping;
}
} |
要在第一步中支持现有Struts框架,我们必须扩展来自Struts软件包的RequestProcessor。我们必须定制化此请求处理器,因为我们必须判别将如何进行验证(通过使用现有Struts框架,还是利用AJAX概念),还因为我们将在服务器和客户端之间制订一个有关如何解释消息的契约。在消息呈现方面,我们将使用XML格式,这是一种很好的媒体消息传递格式。我们将应用的XML格式的定义是:
XML Format
XML Format |
- Identity是客户端JavaScript用于了解消息将被置于何处的ID。
- Description是在服务器端呈现错误消息后的结果。
首先我们需要在继续流程映射之前,从Web描述符获得servlet映射配置。调用此流程后,应用程序将准备表单实例,此实例继承自AjaxForm类。这一处理管理AJAX验证,并且应进行检查以确定来自客户端的请求没有使用struts验证框架。其他在请求过程中执行的流程是流程填充(用于收集客户端发送到动作表单的信息)和流程验证(通过使用现有Struts验证框架中已经存在于AjaxValidationRequestProcessor的父类TilesRequestProcessor中的方法)。
来自TilesRequestProcessor的验证流程将调用所有基于struts验证框架的验证,并将动作错误存储到请求。我们需要仔细分析动作错误,并生成XML消息验证,此验证将被发送到客户端。因为我们希望更改支持验证的行为方式,所以验证流程应检查所用的验证框架的指示器(参见图3)。

图3
使用JDOM作为处理引擎,生成XML消息。如图4所示,如果流程验证被调用,且验证框架的条件等同于AJAX验证框架,则流程将继续填充错误消息并构建XML消息验证。

图4
- 上一篇:四款工具帮你解决AJAX安全难题(1)
- 下一篇:用Ajax读取XML格式的数据






