Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 Spring MVC 3-为什么@ResponseBody方法呈现JSTLView?_Java_Spring_Spring Mvc - Fatal编程技术网

Java Spring MVC 3-为什么@ResponseBody方法呈现JSTLView?

Java Spring MVC 3-为什么@ResponseBody方法呈现JSTLView?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我已经将我的一个方法映射到一个控制器中,通过@ResponseBody返回JSON对象 @RequestMapping("/{module}/get/{docId}") public @ResponseBody Map<String, ? extends Object> get(@PathVariable String module, @PathVariable String docId) { Criteria criteria = new Criteria(

我已经将我的一个方法映射到一个控制器中,通过@ResponseBody返回JSON对象

@RequestMapping("/{module}/get/{docId}")
public @ResponseBody Map<String, ? extends Object> get(@PathVariable String module,
        @PathVariable String docId) {
    Criteria criteria = new Criteria("_id", docId);
    return genericDAO.getUniqueEntity(module, true, criteria);
}
@RequestMapping(“/{module}/get/{docId}”)
public@ResponseBody映射get(@PathVariable字符串模块,
@路径变量字符串(docId){
标准=新标准(“\u id”,docId);
返回genericDAO.getUniquentity(模块、true、条件);
}
但是,它将我重定向到JSTLView。比如说,如果{module}是product,{docId}是2,那么在控制台中我发现:

名为“xxx”的DispatcherServlet正在处理[/xxx/product/get/2]的POST请求 在名为“xxx”的DispatcherServlet中呈现视图[org.springframework.web.servlet.view.JstlView:name'product/get/2';URL[/web-INF/views/jsp/product/get/2.jsp]] 怎么会这样呢?在同一控制器中,我有另一种类似于此的方法,但运行良好:

@RequestMapping("/{module}/list")
public @ResponseBody Map<String, ? extends Object> list(@PathVariable String module,
        @RequestParam MultiValueMap<String, String> params,
        @RequestParam(value = "page", required = false) Integer pageNumber,
        @RequestParam(value = "rows", required = false) Integer recordPerPage) {
...

    return genericDAO.list(module, criterias, orders, pageNumber, recordPerPage);
}
@RequestMapping(“/{module}/list”)
public@ResponseBody映射列表(@PathVariable字符串模块,
@RequestParam多值映射参数,
@RequestParam(value=“page”,required=false)整数页码,
@RequestParam(value=“rows”,required=false)整数记录(每个页面){
...
返回genericDAO.list(模块、标准、订单、页码、记录每页);
}
上面的do正确返回,为我提供了所需对象的列表。
有人帮我解开这个谜团吗?

如果一个控制器方法返回
null
,Spring将其解释为希望框架呈现“默认视图”

我认为,如果该方法是
@RequestBody
-注释的,则该逻辑不应应用,但这可能很难实现-例如,它如何处理通常返回XML的方法的空返回


无论如何,要阻止这种情况发生,您需要确保返回一些内容,例如空的
映射

您确定
get()
方法返回的是非空值吗?哦。。。斯卡夫曼,你打赌是对的。它返回空值。我从没想过返回null会导致这种情况。但是为什么呢?它不应该返回null作为响应吗?这不是更有意义吗?