对于 Web 应用程序,我需要将模型返回到视图。
对于移动应用程序或 API,我想返回 xml 或 json。
是否可以使用单个控制器方法完成所有这些操作,或者我是否必须复制它并创建单独的 API 控制器等?
对于 Web 应用程序,我需要将模型返回到视图。
对于移动应用程序或 API,我想返回 xml 或 json。
是否可以使用单个控制器方法完成所有这些操作,或者我是否必须复制它并创建单独的 API 控制器等?
使用 Spring MVC 3.x,您只需一种控制器方法即可完成此操作。诀窍是ContentNegotiatingViewResolver
在你的 Spring 配置中连接适当的。您可以将其配置为根据文件扩展名和/或请求的 mime 类型返回所需的内容类型。
它最适合只向 . 中添加单个模型属性的方法Model
,否则 JSON/XML 开始变得有点难看。
我经常发现为我的 Web 服务请求实现单独的控制器方法更简单/更好,因为您可以更好地控制 JSON/XML 的格式,并且代码更易于长期维护。
编辑:为了限定我上面的评论,我发现复杂的 JSP 页面可能添加了多达 5-10 个模型属性到页面,结果 JSON 往往很混乱,你通常会发现你真的只想要 1- JSON中的2个。OTOH,添加了 1-2 个模型的简单页面效果很好。