Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @ResponseBody注释的方法不以JSON Spring 3.2.10的形式返回模型_Java_Spring_Spring Mvc_Spring 3 - Fatal编程技术网

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…请参见查看