2014-01-09 20 views
0

我正在使用現有Web模板的網站上工作。網站的所有屏幕/表單都已經被設計成HTML/CSS。具體來說,模板基於引導。將HTML/CSS設計的網站模板遷移到Google Web工具包?

從我記得GWT的時候,當我上次查看它時,必須從java類中設計UI。你能夠改變CSS代碼/類,但你不能修改生成的HTML代碼。

這對我來說是一個問題,因爲我正在尋找一種方法來重新使用我已有的html和css代碼。用GWT做這件事最好的方法是什麼?從本質上講,我希望我的GWT網站看起來和現在的純html/css完全一樣。

+0

你可以看看Errai(http://erraiframework.org/)。它支持使用基於html的模板。 –

回答

4

這很簡單。你可以保持你的頁面完全如此。 Theres不需要改變你的HTML或CSS。

所有你需要做的只是添加一點點的HTML加載GWT(這是不可見的,不會影響其他任何東西)。 然後你需要做的是給任何你想要GWT能夠與之交互的元素。 然後,在Java代碼中,您可以替換這些元素或根據需要更改它們。

例如;

Element MyDiv = DOM.getElementById("left-content") 

會在你的html中得到這個div;

<Div ID="left-content">Content!</div> 

然後,您可以編輯內容,應用或刪除樣式等

如果要添加新的東西到事業部也可以使用RootPanel, ;

Label testlabel = new Label("Test...."); 
RootPanel.get("left-content").add(testlabel); 

或者只是在某個位置(浮動)如果你不希望他們太

Image testimage= new Image ("testimage.png"); 
RootPanel.get().add(testimage); 

這些都不影響會在什麼頁面上已經添加了一些網頁。 同樣,您可以添加和刪除現有CSS控制的現有樣式。

換句話說;你可以讓GWT生成HTML和樣式,但你當然沒有太多。

+0

謝謝。一個問題。如果我用GWT做服務器端,是否可以製作一個.war文件?或者,如果我在服務器端使用Struts2之類的框架,那麼可以輕鬆地在客戶端與gwt集成嗎? –

+0

另外..如果我現有的HTML已經包含表單元素(文本框等),是否有可能獲得現有的文本框等使用他們的ID? –

+0

我承認我不確定。 我這麼認爲。您可以至少使用圖片,我相信它被稱爲「wrap Element」 – darkflame

1

我認爲 @darkflame的解決方案是適用的,如果你只有一個html頁面在整個網站,所以問題是如何管理所有頁面之間的導航&?

我卑微的幾點建議:
- 第一溶液(非常糟糕的一個)由內複製GWT主HTML網頁的所有HTML頁面,然後使用大量調用setVisible的(真/假)來模擬頁面之間的導航,然後使用上面的解決方案..

- 第二方案是從「白手起家」使用GWT最佳實踐GWT MVP

你可以使用Twitter的引導建立自己的網站,在這裏取一看 Bootstrap for Gwt

+0

您提到的第一個解決方案也可以通過隱藏/顯示Frame對象(有效的iFrames)來完成,這樣原始頁面可以被使用而不需要將其全部複製到一個主頁。 您也可以使用「HTMLPanel」對象從文件中加載html並將其放入div中。這可能會更好,因爲您可以使用ID引用元素。 http://examples.roughian.com/index.htm#Panels~HTMLPanel 但是,您必須使用請求調用從服務器獲取HTML。 – darkflame

+0

@darkflame你展示的這個例子,把html硬編碼成一個字符串。我將如何從服務器獲取html? –

+0

您需要使用請求: \t \t RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,「url/here.html」); 然後使用; 「requestBuilder.sendRequest(...」)發送請求,但您需要提供一個回調函數來獲取信息。 – darkflame

1

你可以讓你的HTML和CSS代碼是並使用GwtQuery(GWT的本地版本的jQuery)與您的HTML交互並插入您的GWT代碼。