Spring MVC 2.5,JsonView和ModelMap

时间:2010-03-03 14:02:09

标签: java spring spring-mvc

我希望我的许多控制器能够创建并返回ModelMaps,并让这些ModelMaps随后被JsonView发送/处理。 (这些控制器将为AJAX请求提供服务。)我假设我需要设置一个ViewResolver;做这个的最好方式是什么?有没有比Spring-Json View更好的选择?

修改

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

3 个答案:

答案 0 :(得分:1)

我不确定它是否是spring-json的'更好'的替代品,但是使用Spring 3.0,你可以在Controller中注释一些方法,它将根据HTTP Accept标头返回json或xml。 / p>

有关详细信息,请参阅this博文。

答案 1 :(得分:1)

使用spring-json视图有什么问题?

这似乎是你想要处理这样的事情的确切方式:

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

答案 2 :(得分:1)

/**
 * 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());
}

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