天天看點

@ResponseBody不起作用,無法直接将内容響應至頁面的問題

這是我遇到的問題:

啟動伺服器通路/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");

                //關鍵部分
           

繼續閱讀