1. 程式人生 > >Ajax 之 DWR

Ajax 之 DWR

cati 腳本 ogg 實例對象 inpu doc struts rip app

  DWR是開源框架,類似於hibernate。借助於DWR,開發人員無需具備專業的JavaScript知識就可以輕松實現Ajax,是Ajax更平民化。

  1. 添加jar包 dwr.jar commons-logging-1.1.3.jar Struts框架中有log包
  2. 修改項目的web.xml,添加Servlet映射
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 3 <display-name>AjaxDwr</display-name> 4 <welcome-file-list> 5 <welcome-file>index.jsp</welcome-file> 6 </welcome-file-list>
    7 <servlet> 8 <servlet-name>dwr-invoker</servlet-name> 9 <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> 10 <init-param> 11 <param-name>debug</param-name> 12 <param-value>true</param-value
    > 13 </init-param> 14 <!-- 添加crossDomainSessionSecurity參數 --> 15 <init-param> 16 <param-name>crossDomainSessionSecurity</param-name> 17 <param-value>false</param-value> 18 </init-param> 19 </servlet> 20 <servlet-mapping> 21 <!-- 以/dwr/起始的全部URL所指向的請求都交給org.directwebremoting.servlet.DwrServlet 來處理 --> 22 <servlet-name>dwr-invoker</servlet-name> 23 <url-pattern>/dwr/*</url-pattern> 24 </servlet-mapping> 25 </web-app>

  3. 創建dwr.xml文件   在項目的web-inf 文件夾下創建
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE dwr PUBLIC 
     3     "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
     4     "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
     5 <dwr>
     6     <allow>
     7     <!-- 配置文件定義哪個java類,可以被DWR應用創建並通過JavaScript調用,
     8         這裏為java.util.Date,並給這個類賦予一個javascript名稱 AjaxDate
     9         通過修改dwr.xml也可以將自定義的java類公開給JavaScript遠程調用 
    10     -->
    11     <!-- creator屬性時必須的,他指定了使用哪種創造器,
    12             new :最常用,他代表將使用java類默認的無參構造方法創建類的實例對象
    13             scripted :使用腳本語言來創建java類對象
    14             Spring : 使用spring框架的bean來創建對象
    15      -->
    16     <create creator="new" javascript="AjaxDate">
    17         <param name="class" value="java.util.Date"/>
    18         <!--  可以選擇將類的方法公開給javascript調用 -->
    19         <include method="toString"/>
    20     </create>
    21     </allow>
    22 </dwr>

  4. 使用JavaScript遠程調用Java類方法
     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     3 <html>
     4   <head>
     5     <title>DWR 應用</title>
     6     
     7     <script language="javascript" src="dwr/interface/AjaxDate.js"></script>
     8     <script language="javascript" src="dwr/engine.js"></script>
     9     <script language="javascript" src="dwr/util.js"></script> 
    10     <script language="javascript">
    11         function doTest(){
    12         AjaxDate.toString(load);
    13         }
    14         function load(data){
    15         window.alert("現在時間是:"+data);
    16         }
    17     </script>
    18   </head> 
    19   <body>
    20    <input type="button" value="查詢現在時間" onclick="doTest()">
    21   </body>
    22 </html>

Ajax 之 DWR