用什么策略来确定JSON或XML?

时间:2012-01-24 14:06:51

标签: java spring spring-mvc

使用Spring时,当要返回JSON和XML时,最佳做法是什么?

说我有方法:

@RequestMapping(value="items/{id}", method = RequestMethod.GET)
public Item getItem(@PathVariable, Long id) {
   // Find and return item.
}

如何以如下样式调用此方法: localhost:8080/app-name/items/1.xmllocalhost:8080/app-name/items/1.json并以各自的格式获取数据?

3 个答案:

答案 0 :(得分:4)

最明显的解决方案:

@RequestMapping(value="items/{id}.{format}", method = RequestMethod.GET)
public Item getItem(@PathVariable, Long id, String format) {
   if(format.equals("xml"))
...
}

答案 1 :(得分:3)

这在Spring文档here中进行了讨论。

  1. 您可以使用两个单独的网址来确定要返回的类型

  2. 您可以使用接受标头。但是,从浏览器中,您无法设置接受标头。因此,使用单独的URL可以提供更多控制。

答案 2 :(得分:3)

使用@ResponseBody并确保在HandlerAdapter中注册了HttpMessageConverters,它可以使用JSON和XML mime类型处理对象Item。这也允许您避免复制返回相同项目的控制器,并使代码更易于维护和测试。

有关其他信息,请参阅此处: http://www.ibm.com/developerworks/web/library/wa-restful/