Ajax
的使用
??????
今天終于揭開了那個一直讓我神往的
ajax
技術的面紗。這里用的
dwr
實現的
ajax
技術。好了,現在我們看看要想在你的
j2ee
項目中使用
dwr
該怎么辦吧!由此也揭開我們的第一章。
1?????????
Dwr
的配置和使用
??????
首先我們看看如何配置
dwr
呢?很簡單。把人家的
jar
包拷貝到你的
lib
目錄下啊。看過一些資料,一些人說:
dwr
必須要配置
bsf-2.3.jar , beanshell-1.3.0
。其實不然,只要把
dwr.jar
加入就可以了。
???
第二步:配置
web.xml
??????
<
servlet
>
???????
<
servlet-name
>
dwr-invoker
</
servlet-name
>
???????
<
display-name
>
DWR Servlet
</
display-name
>
???????
<
description
>
Direct Web Remoter Servlet
</
description
>
???????
<
servlet-class
>
uk.ltd.getahead.dwr.DWRServlet
</
servlet-class
>
???????
<
init-param
>
???????????
<
param-name
>
config
</
param-name
>
???????????
<
param-value
>
WEB-INF/dwr.xml
</
param-value
>
???????
</
init-param
>
???????
<
init-param
>
???????????
<
param-name
>
debug
</
param-name
>
???????????
<
param-value
>
false
</
param-value
>
???????
</
init-param
>
???????
<
init-param
>
???????????
<
param-name
>
scriptCompressed
</
param-name
>
???????????
<
param-value
>
false
</
param-value
>
???????
</
init-param
>
???????
<
load-on-startup
>
8
</
load-on-startup
>
</
servlet
>
<
servlet-mapping
>
???????
<
servlet-name
>
dwr-invoker
</
servlet-name
>
???????
<
url-pattern
>
/dwr/*
</
url-pattern
>
</
servlet-mapping
>
??????
好了,因為你在
web.xml
下配置了
:
???????????
<
param-name
>
config
</
param-name
>
???????????
<
param-value
>
WEB-INF/dwr.xml
</
param-value
>
?
?
那么就要在
web-Inf
下建立一個
dwr.xml
文件。
???
下面我們看看
dwr.xml
文件吧:
<dwr>
??? <allow>
??????? <create creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO">
??????????? <include method="findApartments"/>
??????????? <include method="countApartments"/>
??????????? <include method="getDate"/>
??????? </create>
? </allow>
</dwr>
??????
是不是很簡單,所有的
<create></create>
之間的代碼就是配置
ajax
的一些屬性,
其中
creator=
”
new
”
表示類的實例是
new
出來的。后面的
include
包含的就是開放給
dwr
可以通過
javascript
訪問的類。
Javascipt
中的值就是你要在
jsp
頁面編寫的
javaScript
代碼中使用的函數名。這些都不難可以理解其意思。
這樣我們就可以在外面的
jsp
頁面上使用了。
???
現在看看
jsp
是怎么樣樣的吧
!
這里只把關鍵的部分拿出來分析以下:
<script src='<%request.getContextPath()%>/dwr/interface/ApartmentDAO.js'></script>
<script src='<%request.getContextPath()%>/dwr/engine.js'></script>
<script src='<%request.getContextPath()%>/dwr/util.js'></script>
<script>
function date(guid) {
???
ApartmentDAO.getDate(loadTotal2,guid);
?}?
?function loadTotal2(data) {
??? document.getElementById("today").innerHTML = data;
? }
</script>
再看看內部的
java
類的部分代碼:
public class ApartmentDAO {
public String getDate(String guid){
???? Date date =? new Date();
???? return date.toString();
? }
}
這個
getDate()
方法返回的是當前的系統時間,很簡單。然后通過在
dwr.xml
聲明后可以在
jsp
頁面中使用
ApartmentDAO.getDate(loadTotal2,guid);
來調用
ApartmentDAO
中的方法了,看他調用的好像有點怪異,明明
ApartmentDAO
中只有一個參數啊。這里用到
javascript
的回掉了。
其實是通過
javascript
的回掉將類里面的返回值在
function loadTotal2(data)
中使用。這里的參數
data
就是
java
類
return
出來的值,這樣我們就可以得到
java
類中的返回值后寫一些
javascript
了。
以上就完成了簡單的
ajax
的使用了,通過這個簡單的例子是不是理解
ajax
技術了呢。當然還不夠,但這也算是我們的突破口吧,有這樣的一會試驗后,后面的
ajax
就不是那么神秘呢,歸根到底他不就是“
javascript
前臺調用后臺
java
類”嗎?
2?????????
注意要點
首先
web.xml
一定要配置正確,
servlet
一定要正確。
Dwr.xml
中配置類和方法一定要正確。
Jsp
中我們要注意以下一些內容:
<script src='<%request.getContextPath()%>/dwr/interface/ApartmentDAO.js'></script>
<script src='<%request.getContextPath()%>/dwr/engine.js'></script>
<script src='<%request.getContextPath()%>/dwr/util.js'></script>
其中:
<script src='<%request.getContextPath()%>/dwr/engine.js'></script>
<script src='<%request.getContextPath()%>/dwr/util.js'></script>
是一定不能忘的,注意前面我們還要加上
<%request.getContextPath()%>
防止你是在其他的
context
下使用時不正確了,這個細節我以前沒有注意,實在是枉弄了半天,以后不能這么粗心大意了。第一句也必須加上,注意
js
的文件名要和類名一致。
好了,注意上面幾個部分
dwr
的使用就可以非常輕松了。今天的思考就到這里了。
?
posted on 2006-09-15 15:24
安文豪 閱讀(457)
評論(0) 編輯 收藏 所屬分類:
j2ee