2013-02-13 63 views
0

如何通過ajax將對象類型的元素髮送到servlet?下面 在我傳遞的價值作爲Ajax如下:如何通過Ajax發送對象到Servlet

data: { mapList : mapLists } 

要獲得在Servlet正在做的價值低於如下:

Object o = request.getAttribute("mapList"); 
System.out.println(o); 

但是,返回的值總是。我該怎麼做才能解決這個問題?

回答

0

通過改變你的Ajax DATAS:

data: { 'mapList' : mapLists } 
+0

你好,你做了兩個修改,但結果仍然是空。下面的鏈接打印出我想發送給我的Servlet http://bit.ly/V9oHsg的對象。所以,夥計們,還有其他的提示嗎?謝謝。 – 2013-02-13 17:20:18

0

在HTTP GET或POST請求,你只能發送鍵/值對的列表作爲參數傳遞給服務器,所以你將不得不手動序列化你的對象發送它的屬性就是這種格式。

你應該更好地代替HttpServletRequest.getAttribute(String)使用HttpServletRequest.getParameter(String)。此外,作爲HTTP GET/POST參數獲得的內容將始終作爲String在servlet中接收。

我假設你正在使用jQuery發送Ajax請求。我還認爲你的mapLists變量是一個json對象。據我所知,jQuery不會自動將json對象轉換爲鍵/值對HTTP參數列表,因此您必須自行完成,然後將其解析回servlet。你可以使用JSON.stringify()來轉換你的json對象,或者你可以手動序列化它。

+0

你好,你們都做了你所說的修改,但結果仍然是空的。下面的鏈接打印出我想發送給我的Servlet http://bit.ly/V9oHsg的對象。所以,夥計們,還有其他的提示嗎?謝謝。 – 2013-02-13 17:26:00

+0

Hello Roberto Linares感謝您的反饋。 [此鏈接](http://pastebin.com/Nug8CpVm)包含生成我的對象(數組)的函數。 [此鏈接](http://pastebin.com/j99dXmLa)有代碼,我如何通過ajax發送結果並將其獲取到servlet中。有了這些結果,我認爲是拿起價值,並把它們放在地圖;。括號內的值是鍵和括號內的值作爲值。以「疾病」格式返回值:[「名稱」,「班級」],「藥物」:[「適應症」],「GenericDrug」:[「影響有機體」] – 2013-02-13 21:07:21