4
我已經在一個Controller中映射了一個我的方法來通過@ResponseBody返回JSON對象。Spring MVC 3 - @ResponseBody方法如何呈現JSTLView?
@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。就是說,如果{模塊}是產品和{的docId}爲2,然後在我發現控制檯:
DispatcherServlet的名稱爲 'xxx' 的處理POST請求[/ XXX /產品/獲得/ 2] 渲染view [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 2010-06-08 20:14:45
哦... Skaffman,你打賭是對的。它返回null。 我從來沒有想過返回null會導致這種情況。但爲什麼?它不應該只是返回null作爲響應?這不是更有意義嗎? – 2010-06-09 00:42:55