2013-08-30 72 views
1

我打算從平面jsp頁面使用Ajax調用控制器的表單提交,我想從控制器返回一個哈希表到jsp頁面,我可以迭代顯示值的hashmap。從控制器使用春季Ajax調用獲取地圖

如果我在響應中發送消息,我可以在ajax函數中獲得成功:但如何獲取整個地圖。因爲如果你甚至設置了request屬性,你就不能在jsp頁面中獲得它。很好的幫助。

回答

2

在您的控制器的方法上使用@ResponseBody註釋。對於例如爲:

@RequestMapping(value = "/yourAjaxRequestUrl", method = RequestMethod.POST) 
public 
@ResponseBody 
Map<String, Object> performOperation(@RequestParam("someParam") String someParam) { 

    //Do something 

    return Collections.<String, Object>singletonMap("yourObject", yourObject); 
} 

這將返回JSON格式的對象,在地圖中的所有對象,然後可以通過JavaScript訪問。

0

我認爲你的服務器端代碼與你的客戶端代碼混淆。 AJAX是客戶端,JSP是服務器端。你無法在兩者之間傳遞數據。

當您進行AJAX調用時,JSP已經完成執行,並且它生成的標記存在於瀏覽器中,包括您的AJAX代碼。

如果您的Spring Controller正在返回JSON(也許您將Map代表爲JavaScript關聯數組),那麼您可以使用jQuery遍歷該數組並根據其內容創建動態HTML元素。