2014-01-10 64 views
0

我的「移民工作從JSP到Flex和Java作爲後端。我在Java和JSP新手。從Java Servlet的檢索HashMap中值彎曲

我被困在從Java獲取值。servlet的地方需要的HttpRequest,有一個叫forward(request,response)函數作出響應,JSP頁面與它requried值
現在我需要改變,並從這個servlet只得到的數據和使用,在柔性

問題:
case1:使用httpservice時,它將結果作爲字符串,但無法作爲對象獲取。
case2:如果我使用RemoteObject,它需要java servlet中的方法來獲取返回值,這在現有的servlet中不存在。

我可以就這個問題得到任何建議。

謝謝

+1

如果對象是列表或映射,請嘗試將resultFormat更改爲「array」,並查看從服務器返回的結果。 – matilu

回答

1

案例1:你不使用着了,您將要返回的數據類型,例如:

response.setContentType("application/json"); 

...在servlet的返回數據通過像將數據寫入到流做:

PrintWriter out = response.getWriter(); 
out.print(object); 

但它是前一陣子,因爲我這樣做,所以有可能你會遇到一些小問題...

案例2:如果您使用的servlet,它的正確使用的HTTPService,RemoteObject的是行不通的,它是用來區別....


現在,如果我可以,我會建議diferent東西使用比servlet - 從java服務器獲取數據到Flex - 我喜歡使用GraniteDS。

我只是說出了一些好處我認爲,如果你有興趣:

這是很容易設置: - 在Java中,您將只需添加一個GraniteDS的庫中,兩個配置文件(花崗岩+服務 - config xmls)在web.xml中添加一個花崗岩servlet配置 - 在flex中也有花崗岩庫和services-config.xml

設置時,使用它也很容易 - 你有一個類的方法或簡單的bean或ejb)在Java中只返回任何類型的對象!這就是它在Java

在flex中,在這種情況下,您使用RemoteObject,您只需調用該遠程java方法,並在結果處理程序中獲得您的dataGranite將照顧序列化+傳輸+反序列化,只是給你的對象或者只是動態{}或者甚至是精確類的類型)

+0

我很遲纔回復。自那時起,我一直忙於其他項目和力量。我想很榮幸謝謝@user和matilu幫助我解決這個問題。 再次感謝。 – user1647017