2012-09-21 55 views
0

在現有應用程序(JSF)中,我想用GWT中實現的小部件替換小部件。我也想重用在託管bean中實現的現有邏輯。 服務器上的邏輯需要更多的數據才能工作(所以它需要一切由用戶操作提交的內容) - 我不能只使用GWT-RPC或類似的機制(因爲我不會獲得JSF數據) 。在JSF應用程序中嵌入GWT小部件

現在的問題是:如何將數據從GWT傳遞到服務器,以便我可以在處理提交的JSF操作的同一位置通過GWT小部件編輯後訪問(在服務器上)java對象?

編輯:

想象一下,有一個由JSF產生巨大的形式,並寫在GWT位置選擇器小,看上圖。當用戶點擊「提交」時,我想根據表單和地圖生成一些數據(在服務器上) - 我需要使用同一個方法同時從地圖中獲取表單內容和位置。問題是 - 如何實現這一目標? (這只是一個例子,GWT小部件比簡單的位置選擇器複雜得多)

回答

0

您可以使用RequestBuilder從您的GWT客戶端代碼調用服務器端邏輯。如果服務器端有一個RESTful端點,它應該相對容易。如果使用SLSB編寫後端,我會考慮服務器端的一些中間層(與GWT進行通信),因爲afaik,會話bean不可能(或接近不可能)直接從JavaScript調用。

+0

這樣我會從GWT傳遞數據,但不會從頁面的其餘部分傳遞數據。想象一下,JSF生成了一個巨大的表單,還有一個用GWT編寫的位置選擇器的小型地圖。當用戶點擊「提交」時,我想根據表單和地圖生成一些數據(在服務器上) - 我需要使用同一個方法同時從地圖中獲取表單內容和位置。問題是 - 如何實現這一目標? (這只是一個例子,GWT widget比一個簡單的位置選擇器複雜得多) – mabn

0

我假設你正在提交一個HTML表格(如果沒有,請解釋你目前如何將數據傳輸到服務器)

如果是的話,那麼你可以添加一個隱藏的輸入元素到你現有的表單中,並且當小部件的狀態改變時(例如在ClickHandler中)讓GWT小部件改變該隱藏元素的值。

+0

是的,我正在提交一個表單(有時使用richfaces'ajax)。那麼,你打算將Java對象序列化爲輸入元素,然後在服務器上反序列化它們? (因爲傳遞給服務器的值不會只是一個字符串,而是一個很多對象的圖形)。如果是這樣 - 這裏應該使用GWT的序列化技術? – mabn

+0

如果它是一個複雜的對象,它必須被序列化(在這裏你不能使用GWT-RPC)。我可能會使用[AutoBeans](http://code.google.com/p/google-web-toolkit/wiki/AutoBean#AutoBeanCodex) - 它們可以在客戶端和服務器上自動編碼和解碼。但基本上可以使用任何[技術](http://stackoverflow.com/questions/683123/json-java-serialization-that-works-with-gwt)。 –

相關問題