日期:2014-05-16  浏览次数:20632 次

Struts 2与AJAX(第三部分)
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=371&extra=page%3D3
        什么是DWR            DWR(Direct Web Remoting)是在Java EE中较流行的AJAX框架,它的最大优势就是可以像使用本地的Javascript函数一样,调用服务器上的Java方法。如下图所示:
                   
        图1 DWR工作原理       
            其实DWR原理也不复杂,它先在web.xml中配置一个Servlet,映射到特定的路径(通常是%CONTEXT_PATH%/dwr/*)。这个Servlet的作用就是初始化要暴露给Javascript调用的Java类(通过dwr.xml进行配置),并生成相应的代理的Javascript类代码。在XHR请求到来的时候,Servlet负责将请求的参数变成对应的Java对象,并以其为参数调用目标Java方法,并将返回值转化为Javascript代码。详情请参考:http://getahead.ltd.uk/dwr/
            Struts 2与DWR            在Struts 2.0.x中使用DWR实现AJAX表单校验。在大家掌握了DWR的原理后,下面我想详细介绍一下实现的步骤。
            首先,到以下站点https://dwr.dev.java.net/files/documents/2427/47455/dwr.jar下载DWR的1.1.4版本的JAR包。需要注意的是,DWR虽然已经发布2.0版本,但它与1.1.4有很大的区别,所以请大家不要使用2.0版本,否则会出现异常的;
            接着,新建WEB工程,将下图所示的JAR包加入到工程的“Build Path”中;
                   
        图2 依赖的JAR包       
            接下来,配置web.xml文件,内容如下:
            <?xml version="1.0"            encoding="UTF-8"?>
<web-app            id="WebApp_9" version="2.4"
                        xmlns="http://java.sun.com/xml/ns/j2ee"
                            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee                                http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts 2 AJAX Part 3</display-name>
<filter>
        <filter-name>struts-cleanup</filter-name>
<filter-class>
                                            org.apache.struts2.dispatcher.ActionContextCleanUp
                                        </filter-class>
</filter>
<filter-mapping>
        <filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
    &n