2009-02-26 70 views
1

作爲將舊應用程序移植到GWT的一部分,我們需要將我們現有的JSP嵌入到我們的GWT應用程序中。這些頁面中的很多頁面都很長,導致雙滾動條 - 一個用於主應用程序的窗口,另一個用於框架的內容。我想擺脫內部滾動條,只需在主窗口上有正常的瀏覽器滾動條。如果我能夠獲得渲染內容的高度(整個可滾動區域),我可以將幀的高度設置爲與此匹配,但我不知道從哪裏獲得該信息。如何擺脫GWT應用程序內部框架上的雙滾動條

編輯:爲了澄清,GWT是主要的應用程序導航,並使用iframe(com.google.gwt.user.client.ui.Frame)來嵌入舊版內容。我想要做的是使頁面足夠大,以便封閉的框架不需要滾動條;只有主頁面會滾動。如果有任何方法可以確定框架的「可滾動區域」,我可以動態調整主頁面的大小以適應它。

2nd編輯:我最終或多或少地跟隨了Jack M的建議。但是不使用HTTPRequest,而是使用RequestBuilder,這使得它很容易。我想走這條手工抓取HTML的路線,而不是從一開始就使用框架,但是由於不得不「修復」託管頁面中的URL而受到阻礙;如果用戶「點擊」託管的HTML,則必須修補相關URL的許多實例才能工作。使歷史導航工作,這也是一個痛苦。一旦我將代碼清理了一下,我會嘗試將其發佈到人們可以訪問的地方,因爲我相信這一定是人們將現有應用程序遷移到GWT的常見用例。

回答

2

我能想到的最簡單的方法就是不使用Frame元素,而是使用HTMLPanel加上HTTPRequest。這種方法增加了RPC調用的複雜性,但HTMLPanel是一個簡單的<div>,其中包含內容。因此,它可以擴展和/或與您的JSP內容聯繫。最終結果將是這兩個頁面的無縫集成。

Google自己的example on JSON提供了一個很好的HTTP請求示例。

0

將GWT嵌入到舊的JSP中可能有意義嗎?將< div id =「for.gwt」/ >放在JSP的某處,然後導入JS。

不知道如何將JSP嵌入到GWT中,對不起。

框架內的document.body.clientHeight會幫助你,我想知道嗎?

+0

在我的GWT應用程序中,我創建了一個Frame對象。然後我做frame.setUrl(「/ path/to/legacy_content」) - 所以瀏覽器實際上會在框架中加載一個新頁面。傳統內容恰好是由JSP生成的。 – 2009-02-26 20:19:37