`
kidiaoer
  • 浏览: 825148 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

AjaxAnywhere

阅读更多
AjaxAnywhere 

    读者可以从AjaxAnywhere的官方网站下载demo演示包,它是一个war工程包,可以直接部署在5.0以上版本的Tomcat服务器上。演示包中包含十二个AjaxAnywhere应用案例,包括级联的下拉列表、Web选项卡应用、JSF集成等,其部署到Tomcat后的首页效果如图11-28所示。 

    演示包中不涉及JSF的案例全部都是用单纯的JSP代码编写的,或者内嵌在JSP页面中的Java代码块。虽然从MVC分离的角度看这种方式不尽合理,不过可以使案例尽量简单,不依赖于任何的MVC框架。AjaxAnywhere本身对此并无要求。 

    而且,其中全部的JSP页面中的表单都提交到页面本身,比如,忽略form的action属性。在实际的应用程序中,可以将表单提交到任何URL中,只要保证这个URL最终将导向(forward,不是redirect)包含指定刷新区域的JSP页面。 

    接下来将AjaxAnywhere部署到本章的开发目录中,并且用AjaxAnywhere改造一下案例1数据校验。复制ajaxanywhere-1.1.0.6.jar到{APPLICATION_HOME}\webapps\ WEB-INF\lib文件夹,复制aa.js到AjaxCh11文件夹。修改案例1中例程6-5的sample6_2.jsp如例程11-37所示。 

    例程11-37  修改后的数据校验ajaxRegister.jsp 

    <%@ page contentType="text/html; charset=gb2312"%> 

    <%@ page import="com.ajaxlab.ajax.*"%> 

    <%@ taglib uri="http://ajaxanywhere.sourceforge.net/" prefix="aa" %> 

    <html> 

    <head> 

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 

    <title>Ch11——案例:数据校验</title> 

    <link href="../css/style.css" rel="stylesheet" type="text/css"> 

    <script language="javascript" src="aa.js"></script> 

    <script language="javascript"> 

    ajaxAnywhere.formName = "form1"; 

    ajaxAnywhere.getZonesToReload = function() { 

        return "feedback_info"; 

    } 

    function doCheck() { 

        var f = document.forms[0]; 

        if((f.username.value!="")||(f.email.value!="")) { 

            if(f.email.value!="") { 

                    var pattern = /^[\w\.\-\_]+@{1}\w+(\.{1}\w+)+$/; 

                    var result = pattern.exec(f.email.value); 

                    if(result==null) window.alert("电子邮件格式错误,请按标准email名称格式填写,如:hello@sohu.com。"); 

            } 

            f.action = "ajaxRegister.jsp"; 

            ajaxAnywhere.submitAJAX(); 

        } 

    } 

    function formSubmit() { 

        var f = document.forms[0]; 

        f.action = "login.jsp"; 

        f.submit(); 

    } 

    </script> 

    </head> 

     

    <body><center> 

    <form name="form1" method="post" action="login.jsp"> 

        <table width="500" border="0" cellspacing="0" cellpadding="4"> 

            <caption>用户注册</caption> 

            <tr> 

                <td width="70">用户名称:</td> 

                <td width="414"><input name="username" type="text" class="f orm_ text" id="username" size="40"> 

                <input name="userCheck" type="button" class="button" id= " userCheck" value="惟一性检查" onClick="doCheck()"> 

                </td> 

            </tr> 

            <tr> 

                <td>密码:</td> 

                <td><input name="password" type="password" class="form_tex t" id="password" size="40"></td> 

            </tr> 

            <tr> 

                <td>电子邮件:</td> 

                <td><input name="email" type="text" class="form_text" id= "email" size="40"> 

                <input name="emailCheck" type="button" class="button" id= "emailCheck" value="惟一性检查" onClick="doCheck()"> 

                </td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                <font color="#FF0000"> 

                <aa:zone name="feedback_info"> 

                <% 

                String username = request.getParameter("username"); 

                String email = request.getParameter("email"); 

                UserService service = new UserService(); 

                if((username!=null)&&(!"".equals(username))) { 

                    UserValue user = service.findUserByName(username); 

                    if(user!=null) out.println("用户名称["+username+"]已经被注册,请更换其他用户名称再注册。<br>"); 

                    else out.println("用户名称["+username+"]尚未被注册,您可以继续。<br>"); 

                } 

                if((email!=null)&&(!"".equals(email))) { 

                    UserValue user = service.findUserByEmail(email); 

                    if(user!=null) out.println("电子邮件["+email+"]已经被注册,请更换其他用户名称再注册。"); 

                    else out.println("电子邮件["+email+"]尚未被注册,您可以继续。"); 

                } 

                %> 

                </aa:zone> 

                </font> 

                </td> 

            </tr> 

            <tr align="center"> 

                <td colspan="2"><input name="Submit" type="submit" class= "button" value="提交" onClick="formSubmit();return false;"></td> 

            </tr> 

        </table> 

    </form> 

    </center> 

    </body> 

    </html> 

    例程11-37引用了AjaxAnywhere的Javascript库文件aa.js,并设置AjaxAnywhere对象的formName为form1,重载其getZonesToReload方法指定更新区域为feedback_info。事件处理函数doCheck()调用AjaxAnywhere对象的submitAJAX()方法,向服务器提交Ajax请求,并进行数据校验。页面上则使用了<aa:zone name="feedback_info"></aa:zone>标签指定原来<label>标记所定义的区域为页面可刷新区域,该标签最终被解析成<span id="feedback_ info"></span>。原来在register.jsp中的数据校验逻辑也整合到ajaxRegister.jsp中了。当单击“惟一性检查”按钮的时候,AjaxAnywhere向服务器提起数据校验请求,随后将校验结果显示在可刷新区域feedback_info 


分享到:
评论

相关推荐

    AjaxAnyWhere中文

    ### AjaxAnyWhere中文知识点详解 #### 一、AjaxAnywhere简介与工作原理 **AjaxAnywhere**是一种先进的技术框架,专门设计用于提升Web应用的交互性和响应速度。它通过**分区刷新**的思想,允许局部页面更新而无需...

    ajaxanywhere 局部刷新例子

    在标题"ajaxanywhere 局部刷新例子"中,我们关注的重点是如何利用AjaxAnywhere实现在网页上的特定区域进行数据更新。 描述中提到的"返回一个list,更新jsp中的指定区域的list",意味着这个例子会展示如何从服务器...

    ajaxAnywhere框架概念和使用.doc

    ### AjaxAnywhere框架概念与使用详解 #### 一、AjaxAnywhere框架概述 AjaxAnywhere是一个轻量级的JavaScript库,用于简化Ajax技术的使用。AjaxAnywhere的主要优势在于它能够将普通的HTML表单转换为Ajax请求,无需...

    ajaxAnywhere框架概念和使用.pdf

    AjaxAnywhere 是一个JavaScript框架,专为简化Ajax操作而设计,主要目标是使开发者能够在Web应用中无缝集成异步数据通信。AjaxAnywhere的核心是aa.js文件,这是一个包含客户端Ajax功能的JavaScript库,它处理了诸如...

    ajaxAnyWhere所需jar包及实例

    **AjaxAnyWhere** 是一个JavaScript库,用于简化和增强网页中的异步JavaScript和XML(Ajax)操作。这个库提供了一种方便的方式来实现无刷新页面更新,提高了用户体验,减少了服务器负载。AjaxAnyWhere的核心功能在于...

    ajaxanywhere

    ajaxanywhere jar bao

    ajaxanywhere 实例源码 myeclipse可以直接打开

    AjaxAnywhere是一款强大的JavaScript库,专为开发人员提供方便的AJAX功能,使Web应用程序能够实现更流畅、响应更快的用户体验。这个实例源码是作者在学习AJAX和使用AjaxAnywhere框架时创建的,适合初学者或者希望...

    ajaxAnywhere局部刷新(一)

    **AjaxAnywhere局部刷新技术详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。AjaxAnywhere是IBM推出的一款开源工具,它为Java Web应用程序提供了一...

    AjaxAnyWhere使用说明

    AjaxAnyWhere是一款强大的JavaScript库,专门用于在Web应用程序中实现异步JavaScript和XML(Ajax)技术。它简化了Ajax功能的集成,使开发者无需深入理解底层的XMLHttpRequest对象和复杂的数据交互过程,即可轻松实现...

    ajaxanywhere 使用

    **AjaxAnywhere: 一款强大的异步交互工具** AjaxAnywhere是一款基于JavaScript的库,它使得开发者能够在Web应用中轻松实现无刷新的页面更新,提供类似桌面应用的用户体验。这个工具主要适用于那些希望提升网页互动...

    AjaxAnyWhere中文帮助文档.pdf

    ### AjaxAnywhere集成与使用详解 #### 一、AjaxAnywhere简介 **AjaxAnywhere** 是一种用于增强Web应用程序交互性的工具,它允许开发者通过简单的步骤实现Ajax功能。AjaxAnywhere的核心优势在于其简便的集成方式...

    ajaxanywhere用法.rar

    **AjaxAnywhere:深入理解与应用** AjaxAnywhere是一个强大的JavaScript库,专为提升Web应用程序的用户体验而设计,尤其在实现异步无刷新交互方面表现出色。它简化了在页面上使用Ajax技术的过程,允许开发者轻松地...

    aa.js ajaxanywhere.js

    1.引入ajaxanywhere的taglib和jar包 &lt;%@ taglib uri="http://ajaxanywhere.sourceforge.net/" prefix="aa"%&gt; 2.引入ajaxanywhere客户端脚本 &lt;script src="aa.js"&gt;&lt;/script&gt; 里面定义了一个AjaxAnywhere实例,名字为...

    ajaxanywhere 例子 绝对可用

    AjaxAnywhere是一款增强Web应用程序用户体验的JavaScript库,特别适用于实现页面局部刷新功能,从而提升网页的交互性和响应速度。它在Tomcat这样的Java应用服务器上运行良好,能够为基于JSP、Servlet的应用提供Ajax...

    ajaxAnyWhere局部刷新框架

    AjaxAnyWhere是一款强大的局部刷新框架,它为开发者提供了一种高效、便捷的方式来实现网页的无刷新更新,极大地提升了用户体验。这个框架的核心理念是利用Ajax技术,通过后台异步通信来更新页面的部分区域,而无需...

    wincvs、ajaxanywhere+struts示例+easyjweb指南

    【标题】"wincvs、ajaxanywhere+struts示例+easyjweb指南"涉及的是几个关键的IT技术领域,主要包括版本控制系统Wincvs、Web开发框架Struts与AjaxAnywhere的集成应用以及轻量级Java Web开发框架EasyJWeb的使用教程。...

Global site tag (gtag.js) - Google Analytics