2012-06-18 63 views
3

是否有任何工具/腳本/方法從Java bean類自動生成覆蓋類型?例如,通過在字段/獲取器上添加註釋,可能使用標準JAXB註釋(如@XmlElement)生成GWT覆蓋類型

這裏有一個重複的主題:Generate GWT Overlay types from Java objects,但問題尚未在此處得到解答。唯一的答案是使用Protostuff,這不正是我要找的。

+0

覆蓋類型的原因是什麼?你使用JSON(P)來調用服務層嗎? –

回答

0

終於讓我找到一個辦法做到這一點,雖然它僅是半自動化。在Eclipse中,您可以創建一個代碼模板(窗口/首選項/的Java /編輯/模板)是這樣的:

public final native ${type:var} get${nameCamelCase:var}() /*-{ 
    return this.${name:var}; 
}-*/; 

public final native void set${nameCamelCase}(${type} ${name}) /*-{ 
    this.${name} = ${name}; 
}-*/; 

,並給它像「搞定」的名稱。 然後在任何GWT編輯器中輸入「get」並按Ctrl + Space,然後按Enter鍵。

0

你爲什麼疊加類型?你想使用JSON(P)而不是RPC? 我在RPC層使用JAXB註釋對象,這樣我就不需要2個版本的對象。 RPC很慢,很難加載測試,所以在這種情況下,我可以理解你想要採用覆蓋方式。我在一些影響很大的地方做了這件事。

+0

因爲: 1)RPC不可能自動測試 2)服務器依賴於GWT,RPC與RPC 3)在服務器上,我們擁有Spring MVC的所有功能:同步或異步。對於Spring MVC,這並不重要。您甚至可以在不觸摸服務器的情況下從同步更改爲異步並返回。有了RPC,你只能夢想這一點。我們可以在整個應用程序中應用相同的過濾器,無論是否爲GWT 4)您可以通過簡單的嗅探器查看所有請求數據,如Firebug 5)您可以將JSON數據保留在頁面上,以便隨後從組件讀取(對於Spring表單很有用)或者用AJAX返回 – nucleo

0

只要覆蓋類型文檔是最新的,生成器不可能生成覆蓋類型實現。

它說:

中GWT 1.5覆蓋類型的實現不支持 發電機定義新JSO亞型(由於需要重新定義或 隨後編譯期間否則延長JavaScriptObject $)。 這個限制仍然存在。

http://code.google.com/p/google-web-toolkit/wiki/OverlayTypes

+0

有趣的想法,但我的意思是不是由GWT生成器生成,而是在通常的Java構建過程中在Eclipse/Maven/Ant /等中生成一些生成器 – nucleo