Java @ResponseBody注释的方法不以JSON Spring 3.2.10的形式返回模型
我的方法被注释为Java @ResponseBody注释的方法不以JSON Spring 3.2.10的形式返回模型,java,spring,spring-mvc,spring-3,Java,Spring,Spring Mvc,Spring 3,我的方法被注释为 @RequestMapping(value = "/keepAlive", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE,consumes = MediaType.APPLICATION_JSON_VALUE) public @ResponseBody ModelMap test(HttpServletRequest req, final ModelMap model) {
@RequestMapping(value = "/keepAlive", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE,consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody ModelMap test(HttpServletRequest req, final ModelMap model) {
model.addAttribute("keepAlive", true);
return model;
}
当我调用时,使用JQuery的是ajax
它返回500服务器错误,在服务器日志中,我可以看到它正在寻找KeepAlive.jsp,我使用的是spring3.2.10,并且在类路径中有jackson2。当我调试的源代码请求被传递给ModelAndViewMethodReturnValueHandler而不是RequestResponseBodyMethodProcessor时,似乎模型和视图处理程序在req res处理程序之前注册。如何解决这个问题。同样的代码适用于spring 3.1.2。
谢谢您返回的
ModelMap
可能会导致问题。当使用@ResponseBody
时,返回一些简单的DTOIt可能更合适,但我很惊讶它在spring 3.1.2上工作。spring MVC的代码库从spring 3.1到spring 3.2的变化非常广泛,因此很可能是这种行为发生了变化spring检查了方法的返回类型(不是实际对象)。可能是,您应该返回一个DTO…请参见查看