2009-10-21 121 views
29

有沒有辦法構建Spring Web調用消耗和產生application/json分別格式化的請求和響應?Spring 3 JSON與MVC

也許這不是Spring MVC,我不確定。我正在尋找類似於Jersey/JSON的Spring庫。最好的情況是,如果有一個註釋可以添加到控制器類中,這會使它們變成JSON服務調用。

一個教程展示瞭如何使用JSON構建Spring Web Services會很好。


編輯:我正在尋找一個標註爲基礎的方法(類似於澤西)。

編輯2:像Jersey一樣,我正在尋找REST支持(POST,GET,DELETE,PUT)。

EDIT3:最優選地,這將是pom.xml條目和使用的東西彈簧JS傑克遜春原生版本的一些信息。

+0

類似的話題在這裏提出:http://stackoverflow.com/questions/658936/is-there-a-library-to-convert-java-pojos-to-and-from-json-and-xml – 2010-03-25 11:19:57

+0

dma_k - 這個問題真的不是那麼相似。這個問題詢問了關於在Java對象和JSON之間轉換的問題,這個問題特別要求如何使用Spring MVC發送和接收JSON消息。 – stevedbrown 2010-03-25 15:12:23

回答

17

你當然可以有控制器返回一個JSON輸出的View。看看the Spring-JSON project

要在JSON中使用請求,我會假設您只想讓控制器將請求參數傳遞給可以解析數據的JSON庫?

+1

這不完全是我想要的。它應該像澤西島一樣工作,我不想交出東西,MVC控制器應該包裝一個JSON方面層(可能通過註釋),允許它發送和接收JSON。 Spring-JSON項目的一半(發送),而不是另一半。 – stevedbrown 2009-10-25 18:09:22

4

沒有預先包裝的方式做你想做的澤西與春天通過Jersey-Spring API很好地集成,因此實在沒有理由重新發明車輪。

+0

我目前使用澤西島,它很好。說實話,我並沒有發現Spring的整合很吸引人,這並不是什麼大不了的事情。 就像Spring MVC的Struts的對比,我真的不希望有很多與彈簧安置JSON功能改變的,我只是想弄清楚,如果它確實存在,所以我可以嘗試一下。 – stevedbrown 2009-10-26 15:32:12

0

看起來DWR框架看起來非常接近你想要得到的。

0

您可以通過handler mappings配置Spring MVC攔截器,然後使用映射將返回的數據轉換爲JSON。處理程序配置可以在xml中完成(不需要重新編譯),並且這對於其他應用程序可以是完全透明的。

用一些註釋來標註控制器是相當容易的,然後掛接BeanFactory引導進程以在一些處理器映射過程中註冊控制器。

我已經使用這種方法將彈簧控制器的結果轉換爲GWT RPC調用。

您也可以使用Spring AOP來攔截控制器方法調用,並將請求從/打包到JSON。

2

由於spring-mvc 3.0對JSON提供了Ajax遠程處理的官方支持,它是Spring MVC的一部分。這包括支持使用Spring MVC @Controller編程模型生成JSON響應和綁定JSON請求。

看到here