dwr配置文件dwr.xml详解
本人對dwr 中文文檔關于dwr.xml做的一個整理,純粹體力活,有用得著的朋友別忘頂一下,留個聯系方式一起交流學習!
dwr.xml是DWR的配置文件。默認情況下,應該把它放到WEB-INF目錄(web.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 />
????????<converter />
</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段落里面定義的試DWR可以創建和轉換的類。
dwr.xml文件中的create元素的結構如下:
<allow> <create creator="..." javascript="..." scope="..."> <param value="..."/> <auth method="..." role="..."/> <exclude method="..."/> <include method="..."/> </create> ...</allow>
這里的多數元素都是可選的 - 你真正必須知道的是指定一個creator和一個javascript名字。
creator屬性 是必須的 - 它用來指定使用那種創造器。
默認情況下DWR1.1有8種創造器。它們是:
new: 用Java的new關鍵字創造對象。
pageflow: 訪問Beehive或Weblogic的PageFlow。 (v1.1+) 如果你需要寫自己的創造器,你必須在init部分注冊它。
javascript屬性 用于指定瀏覽器中這個被創造出來的對象的名字。你不能使用Javascript的關鍵字。
scope屬性 非常類似servlet規范中的scope。 它允許你指定這個bean在什么生命范圍。選項有"application", "session", "request" 和"page"。這些值對于Servlet和JSP開發者來說應該相當熟悉了。
scope屬性是可選的。默認是"page"。如果要使用"session"需要cookies。當前的DWR不支持ULR重寫。
param元素 被用來指定創造器的其他參數,每種構造器各有不同。例如,"new"創造器需要知道要創建的對象類型是什么。每一個創造器的參數在各自的文檔中能找到。請查看上面的鏈接。
include和exclude元素 允許創造器來限制類中方法的訪問。一個創造器必須指定include列表或exclude列表之一。如果是include列表則暗示默認的訪問策略是"拒絕";如果是exclude列表則暗示默認的訪問策略是"允許"。
例如要拒絕防范除了setWibble()以外的所有方法,你應該把如下內容添加到dwr.xml中。
<create creator="new" javascript="Fred"> <param value="com.example.Fred"/> <include method="setWibble"/></create>
對于加入到create元素中的類的所有方法都是默認可見的。
auth元素 允許你指定一個J2EE的角色作為將來的訪問控制檢查:
<create creator="new" javascript="Fred"> <param value="com.example.Fred"/> <auth method="setWibble" role="admin"/></create>
當一個類是用script創造出來的,并且scope是session或application,如果你的腳本改變,session中的類和script中的類就不一致了。這樣會出現錯誤。雖然web容器不用重啟,但是用戶需要先登出(或以某種方式清空session),然后再登錄。
當clazz參數不為空,并且用來創造新實例,DWR簡單的調用 class.newInstance() 方法。這種方法是沒問題的,除非腳本正在用某個參數創建一個類,或者調用某個函數來配置這個類。 不幸的是,每次請求都要重新運行script并造成上面的問題。
確認你的Spring的Bean在DWR外面運行良好。 配置DWR和Spring一起工作。 (看下面) 查看演示頁面: http://localhost:8080/[ YOUR-WEBAPP ]/dwr ,檢查spring的Bean是否出現。 DWR對于Spring沒有運行期依賴,所以如果你不使用Spring那么Spring的支持不會產生任何影響到。
。如果你知道還有更好的文檔,請告知我。
Rob Sanheim 指出還有一個能的文檔。
,教你配置DWR使用beans.xml代替WEB-INF/web.xml。
我也對于如何在beans.xml中指定dwr.xml很感興趣,盡管這看上去有些Spring傳染病的感覺。有人知道如何實現嗎?請加入郵件列表并告訴大家。
'Scripted'創造器
] 和 Converter [] , 那么你就需要在這里定義他們。但是建議你現檢查一下DWR是不是已經支持了。
在init部分里有了定義只是告訴DWR這些擴展類的存在,給出了如何使用的信息。這時他們還沒有被使用。這中方式很像Java中的import語句。多數類需要在使用前先import一下,但是只有import語句并不表明這個類已經被使用了。每一個creator和converter都用id屬性,以便后面使用。
web.xml文檔)。每個文件中的定義會被加在一起。DWR用這個功能來加載基礎配置文件。我們可以看看標準被配置文件來了解dwr.xml的內容。
總結
以上是生活随笔為你收集整理的dwr配置文件dwr.xml详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: goosegooseduck手游下载(g
- 下一篇: java中的23中设计模式