2010-11-01 19 views
0


我想寫準備哈希表的,返回的向量的javascript和那裏的JavaScript我需要遍歷一個向量和打印哈希表的內容的DWR功能的豆。使用Vector和Hashtable作爲DWR

我的DWR功能:

public Vector getEmployeeData() { 
    Vector employeeData = new Vector(); 
    // some other content to prepare vector 

    return employeeData; 
} 

,我已經在web.xml中正常和內容的dwr.xml配置DWR-的servlet:

<create creator="new" javascript="Employee" scope="script"> 
    <param name="class" value="com.test.DWREmployeeManager"/> 
</create> 
<convert match="java.util.Hashtable" converter="bean"/> 
<convert match="java.util.Vector" converter="bean"/> 

但我的問題是,當我叫這個從javascrit的dwr方法我得到空數組作爲dwr回調函數的結果。

任何人都可以提出這個問題的解決方案..

+1

矢量和散列表是幾年前應該正式棄用的古代類。分別使用ArrayList和HashMap。 – 2010-11-01 14:19:19

+0

出於某種原因,有很多初學者使用'Vector'。他們必須使用一些過時的書籍。 – 2010-11-01 14:43:22

+0

感謝您的建議。 但是,使用Vector和Hashtable有什麼缺點嗎? – Pawan 2010-11-02 05:06:25

回答

0

而不是使用兩個標籤,

<convert match="java.util.Hashtable" converter="bean"/> 
<convert match="java.util.Vector" converter="bean"/> 

我用下面的轉換標籤:

<convert converter="collection" match="java.util.Collection"/> 

現在,它的工作的罰款。

Thanx

0

我懷疑這裏的問題是,你告訴DWR的集合對象轉換爲豆類。你不需要這樣做,也不需要 - 它們不是豆類,而是集合。

參見: http://directwebremoting.org/dwr/server/dwrxml/converters/collection.html

而且,正如我在上面的評論,你可能需要使用一個列表(數組或鏈接),和一個HashMap。如果您使用Java 5或更新版本,則可能應該添加類型聲明。

這裏是我的建議:(你沒有具體顯示您的哈希表的代碼,所以我只是假設地圖鍵入了一些字符串)

public List<Map<String,EmployeeData>> getEmployeeData() { 
    List<Map<String,EmployeeData>> employeeData = new ArrayList<Map<String,EmployeeData>>(); 
    // some other content to prepare list 

    return employeeData; 
} 

在dwr.xml中,你需要刪除這兩個轉換線,並添加一個:

<convert match="com.test.EmployeeData" converter="bean"/> 

(並確保有該Bean適當的getter和setter方法)。