2008-11-21 57 views
1

DWR處理非常簡單的基元列表。我找不到由DWR方法調用返回的對象數組是否代表JSON對象。任何線索?還是必須返回一個表示對象數組的JSON字符串返回給瀏​​覽器?如何解析由DWR返回的對象的數組?

回答

6

這個答案是晚了一點,但在這裏不用:)

好消息:DWR還處理Java數組和集合在一個非常直接的方式。只需返回它們,在客戶端,您將獲得JavaScript Array對象。 (在像數組或集合中的原始類型或字符串的典型情況下,即如果內容更具異國情調,則可能需要定義轉換器;更多內容請參見下面的更多內容。)

以下是來自DWR documentation(強調我的)的報價:

默認情況下,所有下面是 轉換爲您沒有進一步 聲明:

  • 所有原始類型,布爾,整型,雙等
  • 個基於的類的這些布爾,整數的版本等
  • java.lang.String中
  • java.util.Date和3個SQL衍生物上述
  • 類別的
  • 陣列(詞典,設置,地圖,上面
  • DOM對象(如從DOM,XOM,JDOM和DOM4J

所以你defini元素和文檔)的迭代器等) Tely不需要這些JSON字符串(儘管對於更復雜的數據結構來說這可能是一個不錯的選擇)。

實際上,您可以返回更多類型的對象,而無需進行大量手動工作,因爲DWR帶有用於許多典型用途的「converters」。例如,爲了讓您的自定義「豆」樣式Java對象在客戶端的JS工作,你需要在dwr.xml要說的是,你要使用的bean converter

<convert converter="bean" match="com.company.YourBean" /> 

即使你的方法返回一個列表(或陣列)的那些豆對象...

public static List<YourBean> getData(){ ... } 

...上面的配置足夠了,這是相當不錯的。