Java SpringMVC2.5、JsonView和ModelMap

Java SpringMVC2.5、JsonView和ModelMap,java,spring,spring-mvc,Java,Spring,Spring Mvc,我希望我的许多控制器创建并返回模型映射,并使这些模型映射随后发送到服务器或由服务器处理。(这些控制器将为AJAX请求提供服务。)我想我需要设置一个ViewResolver;最好的方法是什么?有没有更好的替代SpringJSON视图的方法 编辑: 当我的控制器返回对象而不是ModelAndView对象时,我如何连接视图?我不确定它是否是spring json的“更好”替代方案,但在spring 3.0中,您可以只注释控制器中的一些方法,它将基于HTTP Accept头返回json或xml 有关更多

我希望我的许多控制器创建并返回模型映射,并使这些模型映射随后发送到服务器或由服务器处理。(这些控制器将为AJAX请求提供服务。)我想我需要设置一个ViewResolver;最好的方法是什么?有没有更好的替代SpringJSON视图的方法

编辑:


当我的控制器返回对象而不是ModelAndView对象时,我如何连接视图?

我不确定它是否是spring json的“更好”替代方案,但在spring 3.0中,您可以只注释控制器中的一些方法,它将基于HTTP Accept头返回json或xml


有关更多信息,请参阅博客文章。

使用SpringJSON视图有什么问题

这似乎正是您希望处理此类问题的方式:

  • 您的控制器不知道将要使用的视图技术,它只返回一个视图名和数据(模型)
  • 您可以配置一个视图解析器,将该模型转换为JSON(或HTML、Excel或任何您想要的格式)

它依赖于RequestToViewNameTranslator来确定逻辑视图名称。

谢谢;这很好。如果我想坚持使用2.5.x,有什么建议吗?我没有使用SpringJSON,但是如果您使用2.5.x,这看起来是合理的。我以前使用过Jersey和SpringJersey模块,但它使用了一组不同的注释(jax-rs)。因此,它不能很好地与您的控制器集成。但这是另一种选择,谢谢;这没什么问题,只是问问而已。想添加一个如何配置的示例吗?谢谢@matt b,但是这些示例返回model和view对象。这是Spring MVC控制器应该返回的,也是接口指定的。你能证明你所说的模型地图是什么意思吗?您使用哪种类型的控制器返回这样的对象?ModelMap是Spring 2.0重新设计的ModelAndView对象的一部分,封装了将向视图公开的名称-值-属性对集合。
/**
 * Custom handler for displaying vets.
 * Note that this handler returns a plain {@link ModelMap} object instead of
 * a ModelAndView, thus leveraging convention-based model attribute names.
 * It relies on the RequestToViewNameTranslator to determine the logical
 * view name based on the request URL: "/vets.do" -> "vets".
 * @return a ModelMap with the model attributes for the view
 */
@RequestMapping("/vets.do")
public ModelMap vetsHandler() {
    return new ModelMap(this.clinic.getVets());
}