【发布时间】:2010-06-08 14:45:57
【问题描述】:
我已将我的一种方法映射到一个控制器中以通过@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);
}
但是,它会将我重定向到 JSTLView。比如说,如果 {module} 是 product 而 {docId} 是 2,那么在控制台中我发现:
名称为“xxx”的 DispatcherServlet 处理 [/xxx/product/get/2] 的 POST 请求 渲染视图 [org.springframework.web.servlet.view.JstlView: name 'product/get/2';名称为“xxx”的 DispatcherServlet 中的 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);
}
上面确实返回正确地为我提供了我需要的对象列表。 谁能帮我解开这个谜?
【问题讨论】:
-
您确定
get()方法返回的是非空值吗? -
哦... Skaffman,你打赌是对的。它返回空值。我从没想过返回 null 会导致这种情况。但为什么?它不应该只返回 null 作为响应吗?不是更有意义吗?
标签: java spring spring-mvc