对于Web应用程序,我需要将模型返回到视图。
对于移动应用程序或API,我想返回xml或json。
是否可以使用单一控制器方法完成所有这些操作,或者我是否必须复制它并创建单独的API控制器等?
答案 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个模型的简单页面效果很好。