2009-08-03 95 views

回答

0

GWT不是像Rails的一個完整的應用程序棧,所以你可能無法找到一個解決方案,爲整合和開箱即用的軌道。 GWT主要是一個視圖層 - 你仍然需要一個持久層。

+0

我明白,但它可以讓我把它與持久層的另一個框架捆綁在一起。 – Otavio 2009-08-04 12:02:56

3

Spring Roo在谷歌I/O 2010年那可能是你要找的內容公佈。

+0

+1,Spring Roo可能是你正在尋找的。它甚至在[GWT網站](http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html#MvpFramework)中提及。但是,它需要GWT 2.1才能工作。 – Piotr 2010-06-26 09:55:20

+0

[Here](http://www.youtube.com/watch?v=GQHlhIIxCIc),您可以找到Google I/O Spring Roo和GWT集成的演示。 – Piotr 2010-06-26 10:10:34

0

GWT使用不同的模式。把它想成一個很好的老搖擺。通信已經內置(GWT-RPC)。改進它的唯一方法 - 這些CRUD框架都不提供 - 將創建一些適用於某些統一數據的模式(您自己的更豐富的小部件集等)。當然還有服務器上的匹配代碼。通過這種方式,您可以使用通用的GWT-RPC方法和通用數據結構來傳遞數據,而不是所有這些接口中的數百萬個方法。否則,GWT-RPC與任何通用的CRUD「框架」一樣好,在「服務外觀」中會有上百萬個方法。

一兩件事你可以做的是與Spring MVC的 「整合」 GWT-RPC。只有幾行代碼 - 您可以將您的GWT-RPC服務實現爲標準的Spring @ Controller。他們可以訪問所有自動裝配的組件,等等。你還需要什麼?你可以通過Spring訪問任何東西。

因此,這裏是你怎麼做:

public abstract class GwtRpcController extends RemoteServiceServlet implements Controller, ServletConfigAware { 
private static Log log = LogFactory.getLog(GwtRpcController.class); 

private ServletConfig servletConfig; 

@Override 
public ServletConfig getServletConfig() { 
    return servletConfig; 
} 

@Override 
public void setServletConfig(ServletConfig servletConfig) { 
    try { 
     this.init(servletConfig); 
    } catch (ServletException e) { 
     throw new RuntimeException(e); 
    } 
    this.servletConfig = servletConfig; 
} 

@Override 
protected void onAfterRequestDeserialized(RPCRequest rpcRequest) { 
    super.onAfterRequestDeserialized(rpcRequest);  
} 

@Override 
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { 
    super.doPost(request, response); 
    return null; 
} 

@Override 
protected void doUnexpectedFailure(Throwable e) { 
    log.error(e.getMessage(), e); 
} 

}

而且你的GWT-RPC服務:

@RemoteServiceRelativePath("gwtrpc/xxx") 
public interface XxxService extends RemoteService { 
... 
} 

@Controller 
@RequestMapping(value = "xxx") 
public class XxxServiceImpl extends GwtRpcController implements XxxService { 
... 
} 

確保 「gwtrpc/*」 被映射到SpringDispatcher的servlet web.xml中。通常情況下,您會將所有內容(「/」)映射到它,併爲非Spring資源(如CSS等)制定例外,因此您無需明確執行任何操作。