ajax開源項目dwr的使用:
?利用DWR可以在客戶端利用JavaScript直接調用服務端的Java方法并返回值
?給JavaScript就好像直接本地客戶端調用一樣.
?1:下載dwr.jar文件,將其加入到web工程的lib下;
?2:在web.xml文件中配置如下信息:
??<servlet>
? ???<servlet-name>dwr-invoker</servlet-name>
? ???<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
??</servlet>
??<servlet-mapping>
? ???<servlet-name>dwr-invoker</servlet-name>
???<url-pattern>/dwr/*</url-pattern>
??</servlet-mapping>
??? 其中url-pattern中必須配置為 “/dwr/* ”,不能為工程的名稱!!
?
?3:在web.xml同級中增加文件dwr.xml,此文件是javaScript中調用的方法,影射到class類
??例如:
?? <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "??<dwr>
?? <!-- without allow, DWR isn't allowed to do anything -->
? ???<allow>
??? ???<create creator="new" javascript="MyTest" scope="application">
????? ????<param name="class" value="com.test.ajax.DWRTest"/>
??? ???</create>
??? ???<create scope="application" creator="new" javascript="showData">
??? ????<param name="class" value="com.test.ajax.HelloName"/>
??? ???</create>
? ???</allow>
??</dwr>
?在allow節點中定義要影射的class類,并且給其class類起一個javaScript的名字,以便在
?javaScript中調用。
?
?4:然后定義class文件
??package com.test.ajax;
??public class DWRTest
??{
???public DWRTest(){
?????
??? }
??? public String getMyName(){
???? return "hello_ajax";
??? }
??}
??
??/**
??*---------------------------------------------------
??**/
??package com.test.ajax;
??public class HelloName
??{
???private String userName ;
???public HelloName(){??
???}
???/**
??? * @return Returns the userName.
??? */
???public String getUserName()
???{
????return "helloTest";
???}
???/**
??? * @param userName The userName to set.
??? */
???public void setUserName(String userName)
???{
????this.userName = userName;
???}
??}
?5: 這時就可以在html或jsp中調用此class文件了,調用方式如下
??一下為測試的 html文件
????
???<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
???<html>
???<head>
???? <title>DWR - My First AJAX</title>
???? <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
???? <script type='text/javascript' src='dwr/interface/MyTest.js'></script>
???? <script type='text/javascript' src='dwr/interface/showData.js'></script>
???? <script type='text/javascript' src='dwr/engine.js'></script>
???? <script type='text/javascript' src='dwr/util.js'></script>
???? <script language="javascript">
????? var mycall=function callBack(data){
????? DWRUtil.setValue("demo1",data);
????? DWRUtil.setValue("demo2","leo_wang");
????? DWRUtil.setValue("userName",data);
????? }
????? function showMyName(){
?????? //MyTest.getMyName(mycall);
?????? showData.getUserName(mycall);
????? }
???
????? function clearName(){
?????? demo1.value="";
?????? demo2.value="";
????? }
???? </script>
???? </head>
???<body>
???<h1>Ajax Test Page</h1>
???<input type="button" value="setMyName" onclick="javascript:showMyName()">
???<input type="button" value="Clear" onclick="javascript:clearName()"><br>
???<input type="text" id="demo1">
???<input type="text" id="demo2">
???<input type="test" id="userName">userName
???</body></html>
??在調用javaScript前要先引入剛才在dwr.xml中定義的javaScript
??<script type='text/javascript' src='dwr/interface/MyTest.js'></script>
??<script type='text/javascript' src='dwr/interface/showData.js'></script>
??<script type='text/javascript' src='dwr/engine.js'></script>
??<script type='text/javascript' src='dwr/util.js'></script>
??前面兩行是我們剛才定義的javaScript的引入,后面兩行是dwr中的本身定義的javaScript
??
??ok(完)
??
????
??
??
posted on 2006-06-27 10:17
夢源 閱讀(2249)
評論(0) 編輯 收藏