DWR的使用經(jīng)驗(yàn):
1.. 需要jdom.jar和bsf.jar,否則無(wú)法跟spring整合.
2.. dwr生成的javascript函數(shù)會(huì)自動(dòng)加一個(gè)回調(diào)函數(shù)的參數(shù),如原來(lái)的函數(shù)是checkExist(String name),那么生成的javascript函數(shù)是checkExist(callbackFunc,String name).
3.. 注意回調(diào)函數(shù)只能有一個(gè)參數(shù),就是服務(wù)器的返回值,如function(messFromServer),這里messFromServer是該操作在服務(wù)器上的返回值.
4.. util.js里面有很多有用的方法,最好熟悉一下.
5.. convert并不是必須的,只有你的函數(shù)需要傳遞非基本數(shù)據(jù)類型的數(shù)據(jù)時(shí)需要此項(xiàng).
我需要增強(qiáng)的,dom操作,javascript
DWR collection converter 使用摘要
<convert converter="collection" match="java.util.Collection"/>但是不知道怎么用,從 Java Object --> Javascript Object 問(wèn)題不大,有現(xiàn)成的例子可供參考:),就是 Java function 返回一個(gè)Collection,看了一下返回值在 javascript 中是的形式是一個(gè)object Array然后在 javascript 取出每一個(gè) Object的 property (eg. object.id , objecct.name....)
下面是一個(gè)應(yīng)用實(shí)例---------------------DWR.XML------------------------------
<dwr>
<allow>
<convert converter="bean" match="dwr.sample.Apartment"/>
<create creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO">
<include method="findApartments"/>
<include method="countApartments"/>
<include method="addApartment"/>
<include method="addApartments"/>
<include method="addApartments2"/>
</create>
<create creator="spring" javascript="ApartmentDAO" >
</create>
</allow>
<signatures>
<![CDATA[import java.util.*;
import dwr.sample.*;
ApartmentDAO.addApartments(List<Apartment>);
ApartmentDAO.addApartments2(Map<String,Apartment>);
]]>
</signatures>
</dwr>
如果傳如 java 的代碼的參數(shù) 是一個(gè) Collection ,則要稍微處理以下,先照上面 黑體字 的聲明以下傳入的Collection的內(nèi)部包含的類的 確切類型,以便 Java 代碼 作出判斷;如果傳入的參數(shù)是一個(gè) List,則在 Javascript 中把這些對(duì)象放在 一個(gè)Array中就可以了,如果傳入的參數(shù)是一個(gè)Map,原來(lái)以為是 一個(gè) 二維的 Array就行了,但是試過(guò)之后發(fā)現(xiàn)不行,看了一下例子,原來(lái)要使用這種形式: var depts={ "dept1":new department("2", "200"),"dept2":new department("3", "300") };這樣傳進(jìn)去之后 Java 就會(huì)根據(jù) 這些 數(shù)據(jù)構(gòu)建 一個(gè)Map,
聯(lián)系客服