spring mvc action方法可以将模型返回到视图或xml或json吗?

时间:2012-09-16 21:15:46

标签: java api spring-mvc

对于Web应用程序,我需要将模型返回到视图。

对于移动应用程序或API,我想返回xml或json。

是否可以使用单一控制器方法完成所有这些操作,或者我是否必须复制它并创建单独的API控制器等?

1 个答案:

答案 0 :(得分:1)

使用Spring MVC 3.x,您只需使用一个控制器方法即可完成此操作。诀窍是在Spring配置中连接适当的ContentNegotiatingViewResolver。您可以将其配置为根据文件扩展名和/或请求的mime类型返回所需的内容类型。

最适用于只向Model添加单个模型属性的方法,否则JSON / XML开始变得有点难看。

我经常发现为我的Web服务请求实现单独的控制器方法更简单/更好,因为您可以更好地控制JSON / XML的格式,并且代码更容易维护。

编辑:为了限定我上面的评论,我发现复杂的JSP页面可能会有多达5-10个模型属性添加到页面中,结果JSON往往非常混乱,你通常只发现你想要JSON中的1-2个。 OTOH,增加1-2个模型的简单页面效果很好。