2009年11月19日 星期四

Ext JEE Bridge 使用方式備忘-複雜結構回傳值

在Ext JEE Bridge中要使用複雜結構的回傳值
有三種基本方式:
  1. 使用JavaBean 或 List當回傳值
  2. 使用Map或List當回傳值
  3. 使用ejeeb.util.JSONBridge
第一種做法必須要先定義好回傳用的JavaBean類別, 並且在該類別上加上@JsonSerialize的Annotation, 這樣一來回傳的JavaBean會自動被轉成對應的Javascript物件. 複數個JavaBean也可以直接裝在java.util.List中回傳即可, 也支援多層的巢狀結構.
第二種作法跟第一種類似只是把JavaBean用java.util.Map來代替.
第三種作法必須先使Action類別繼承ejeeb.util.JSONBridge類別, 然後就可以使用下面的方式回傳:

public Object test(){

    return obj(
        attr("testId",1),
        attr("testName","JsonBridgeTest"),
        attr("testData",arr(
            1,
            2,
            "haha",
            obj(
                attr("name","par"),
                attr("isTest",true)
            )
    );
}

Browser端的JS則會取得
{
    "testId":1,
    "testName":"JsonBridgeTest",
    "testData":[
        1,
        2,
        "haha",
        {"name":"par","isTest":true}
    ]
}

三種方式都可以混用, 也都可以用來作多層巢狀的複雜結構回傳值.
雖然可以在一個回傳值中用三種寫法組裝回傳物件, 但是我只推薦第一種作法, 這樣在設計階段比較完整描述出元件.
後面兩種比較適合用來製作雛形或快速開發小型應用系統.

沒有留言:

張貼留言