2013-04-11 42 views
2

這就像用戶點擊一個鏈接,並在Spring控制器類中的方法將響應請求與一個JSON對象和一個視圖名稱(這意味着,它應該返回,但不僅是一個JSON對象,但也是一個HTTP視圖, JSON對象,所以@ResponseBody可能不夠)?我們是否必須將它分成兩個方法(一個用於查看,另一個用於JSON對象)?任何想法將不勝感激。Spring MVC:如何用JSON對象響應一個http請求並一起查看?

通常情況下,我們有

@RequestMapping(value="/someValue") 
public @ResponseBody someMethod1(@RequestParam String param){ 
    ..... 
    return someJSONObject 
} 

要處理JSON對象,

@RequestMapping(value="/someValue") 
public String someMethod2(@RequestParam String param){ 
    ..... 
    return someViewInString; 
} 

要返回的視圖。

我們如何將它們結合在一起?

+2

你不能保存json對象作爲屬性和引用在視圖中使用'$ {name_of_json_attr}'? (我想這可能只適用於你的視圖是'jsp') – user1766760 2013-04-11 19:15:47

回答

2

您應該使用JSON的佔位符返回視圖。

在控制器代碼,創建JSON編程,將其轉換爲字符串格式,然後把它放在模型(我們稱之爲json_string)

在視圖中應該有JSON字符串的佔位符,東西像:

<!-- other view stuff --> 
var v = ${json_string}; 
<!-- more view stuff --> 
+0

這是一個很好的解決方法。謝謝。那麼我們仍然使用JSON,但它就像控制器中的JSON格式的Strin? – Dreamer 2013-04-11 19:12:37

+0

是的,這是正確的 – arahant 2013-04-11 20:20:17

相關問題