2009-10-21 166 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