2011-05-30 16 views
0

我有一個基於MVP + App Controller Design的GWT應用程序。我也有一個MySQL數據庫作爲後端持久性存儲。GWT中的模型對象,Blob作爲屬性

在我的共享文件夾我有一個* 飼料*模型對象。 Feed應用程序將被我的應用程序作爲ArrayList獲取(想象它是一個像應用程序一樣的推特)

我的應用程序中的每個Feed模型對象都可以附帶一個文檔。但是它是可選的。如果用戶通過單擊請求附件,我想要服務器附件文檔。

我曾想過將Blob引用保留爲Feed對象的屬性之一。然而,GWT不允許使用Blob類作爲客戶端代碼(共享文件夾被客戶端以及服務器端代碼使用) 獲取所有Feed的附加文檔並傳遞Array的一個字節需要很多帶寬。 :|

什麼是可能的解決辦法?

回答

0

您不能在客戶端使用Blob。正如你所說的,你不希望在模型對象中傳遞如此大的數據。

你想要做的只是在Feed對象中引用Blob的uniqueId。當用戶嘗試訪問文檔時,將帶有該ID的http請求作爲參數發送到服務器端的Servlet。此servlet將使用該id從數據庫獲取Blob並將該文件作爲附件返回(請參閱here以設置標題)