注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发AJAX → 文章内容

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

作者:佚名 来源:不详 发布时间:2007-12-10 22:05:22
四、 客户端

  构建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校验框架(图五)
图5.JSP校验页面

  六、 构建Action和Action表单

  对于Struts action,我们只需把它转发到我们已经构建的JSP即可,相应的action代码具有如下类似形式:

public ActionForward execute(...) {
return mapping.findForward("success");
}

  如果输入为空,那么Action表单代码就对requiredText属性进行校验。记住,要从AjaxForm类中派生此表单类。此Action表单的validate方法看上去如下:

public ActionErrors validate(...) {
ActionErrors errors = new ActionErrors();
if (StringUtils.isEmpty(this.requiredText)) {
errors.add("requiredText", new ActionError("error.required.input"));
}
request.setAttribute(Globals.ERROR_KEY, errors);
}

  七、 应用Struts校验规则

  接下来要配置Struts校验规则,例如最小长度,最大长度,电子邮件和模式文本,等等。然后,把这些数据应用于客户端的输入对象。这一部分相应的配置类见列表4(详见所附源码)。

  八、 校验处理流程

  首先,客户端初始化XMLHTTP组件以实现对服务器的请求。然后,一旦开始构建用户激活的事件,URL的参数就被发送给服务器。在结束构建参数后,客户端将依附oneadystatechange XMLHTTP事件来听取(listen)来自服务器端的响应。在接收响应后,客户端开始分析XML校验消息并且把该消息存放到适当的地方(见图6)。

基于AJAX技术实现Struts校验框架(图六)
图6.客户端处理流程

  当服务器接收请求时,它就开始检查AJAX校验的参数并且进行校验。一旦完成校验,生成的对象就被过滤到与用户输入对象相联系的特定的错误中。在过滤操作完成后,即刻生成XML消息并把该消息发送回客户端(见图7)。

基于AJAX技术实现Struts校验框架(图七)
图7.服务器端处理流程

  九、 总结

  在本文中,我们构建了一个控制器,它能够接收来自客户端的异步请求并且加入Struts校验过程来生成action错误对象。在生成错误对象和XML消息(见图8和图9)之后,对于即将被校验的特定输入对象的过滤操作立即执行。

基于AJAX技术实现Struts校验框架(图八)
图8.在Struts校验框架内使用AJAX实现应用程序校验测试

基于AJAX技术实现Struts校验框架(图九)
图9.Struts校验框架用例

更多内容请看PCdog.com--Ajax的WEB开发  Ajax基础教程  Ajax技术专题
上一页  [1] [2] 


  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved