配置DWR - dwr.xml
dwr.xml是DWR的配置文件。默認情況下,應該把它放到WEB-INF目錄(web.xml的目錄)下。
DTD
這裏還有一個dwr.xml對應的DTD文檔以及一個用DTDDoc生成的參考手冊。
創建dwr.xml文件
dwr.xml文件的結構如下:
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"> <dwr> <!-- init is only needed if you are extending DWR --> <init> <creator id="..." class="..."/> <converter id="..." class="..."/> </init> <!-- without allow, DWR isn't allowed to do anything --> <allow> <create creator="..." javascript="..."/> <convert converter="..." match="..."/> </allow> <!-- you may need to tell DWR about method signatures --> <signatures> ... </signatures> </dwr>
術語
這裏是一些必須理解的術語 - 參數會被converted,遠程Bean會被created。所以如果你有一個叫A的bean,它有一個方法叫A.blah(B) 那麼你需要一個A的creator和一個B的converter。
<allow>
allow段落裏面定義的試DWR可以創建和轉換的類。
Creators
我們要調用的每個類都需要一個<create ...>定義。creator有幾種。比較通用的是new關鍵字和Spring。更多的信息可以參見[Creaters]文檔。
Converters
我們必須保證所有的參數都可以被轉換。JDK中的多數類型已經有轉換器了,但是你需要給DWR轉換你的代碼的權利。一般來說JavaBean的參數需要一個<convert ...>定義。
默認情況下,如下類型不需要定義就可以轉換:
- 所有的原生類型 boolean,int,double, 等等
- 原生類型的對象類型 Boolean,Integer,等等
- java.lang.String
- java.util.Date 和SQL中的Date
- 以上類型組成的數組
- 以上類型的集合類型 (Lists, Sets, Maps, Iterators, 等)
- 從DOM, XOM, JDOM 和 DOM4J中的DOM對象 (類似 Element 和 Document)
要了解如何轉換你的JavaBean或者其他類型的參數請查看Converters文檔。
<init>
可選的init部分用來聲明創造bean的類和轉換bean的類。多數情況下你不需要用到他們。如果你需要定義一個新的Creator [JavaDoc] 和 Converter [JavaDoc] , 那麼你就需要在這裏定義他們。但是建議你現檢查一下DWR是不是已經支持了。
在init部分裏有了定義只是告訴DWR這些擴展類的存在,給出瞭如何使用的信息。這時他們還沒有被使用。這中方式很像Java中的import語句。多數類需要在使用前先import一下,但是隻有import語句並不表明這個類已經被使用了。每一個creator和converter都用id屬性,以便後面使用。
<signatures>
DWR使用反射來找出在轉換時應該用那種類型。有時類型信息並不明確,這時你可以在這裏寫下方法的簽名來明確類型。詳細信息查看Signatures部分。
多個dwr.xml文件
可以有多個dwr.xml文件(詳細信息見web.xml文檔)。每個文件中的定義會被加在一起。DWR用這個功能來加載基礎配置文件。我們可以看看標準被配置文件來了解dwr.xml的內容。