這是我遇到的問題:
啟動伺服器通路/testArea路徑時,無法将map直接響應至頁面,而是在視圖解析器指定的路徑中尋找以testArea為名稱的視圖頁面。
此時@ResponseBody不起作用。
錯誤代碼如下:
@Controller
public class AreaController {
@Autowired
private AreaService areaService;
@RequestMapping(value = "/testArea",method = RequestMethod.GET)
@ResponseBody
public Map testArea(Map<String, Object> map){
System.out.println("testArea");
List<Area> areas = areaService.findAll();
try{
map.put("areaList",areas);
map.put("areaSize",areas.size());
}catch (Exception e){
map.put("error",e.getMessage());
}
System.out.println("資料庫已查詢。。。");
return map;
}
}
原因:Map對象不能放在參數裡建立,隻能放在方法裡new出來即可。
想想也是,直接放在參數無法指定是HashMap還是什麼其他的Map,自然無法識别,最後隻能通路預設的頁面。
解決:(部分代碼與上相同已省略)
@RequestMapping(value = "/testArea",method = RequestMethod.GET)
@ResponseBody
public Map testArea(){
Map<String, Object> map = new HashMap<String, Object>();
System.out.println("testArea");
//關鍵部分