在这里,我们有一个使用JSP的基本Web应用程序,该应用程序需要提供一些基于JSON的REST服务URL。
这些网址将全部位于/services
下,并由MyRestServicesController
生成。
我看到的用于设置基于JSON的 View 的示例都使用ContentNegotiatingViewResolver
。但是,对于我来说,这似乎有些过激,因为此解析程序似乎是针对相同URL可能产生不同输出的情况。
我只希望我的一个RestServicesController
总是产生MappingJacksonJsonView(s)
。
是否有一种更清洁,更直接的方法来简单地指示 Controller 执行此操作?
最佳答案
就在这里。您可以看一下我在Spring forums中发布的样本。简而言之,我更喜欢通过以下方式来做到这一点。
ApplicationContext:
<!-- json view, capable of converting any POJO to json format -->
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
Controller
@RequestMapping("/service")
public ModelAndView getResultAsJson() {
Object jsonObj = // the java object which we want to convert to json
return new ModelAndView("jsonView", "result", jsonObj);
}
编辑2013:在当今,@skaffman的方法将是一个不错的选择。