簡體   English   中英

.getJSON 404錯誤與ModelAndView

[英].getJSON 404 Error with ModelAndView

我正在嘗試通過調用控制器來檢索我的JavaScript中的一些JSON數據。 控制器返回MappingJacksonJsonView ModelandView,但是.getJSON始終在... / handhygiene.json中報告404。

我從控制器返回ModelandView的方式是否存在問題?

控制者

@RequestMapping(value = "/{room}/handhygiene.json", method = RequestMethod.GET)
public ModelAndView getHandHygienePageAsync(
    @PathVariable(value = "room") String roomCode) {
ModelAndView mav = new ModelAndView(new MappingJacksonJsonView());
mav.getModelMap().addAttribute(blahblahblah); //adds some attributes
...

return mav;
}

Java腳本

var currentURL = window.location;
$.getJSON(currentURL + ".json",
    function(data) {
    ... //does stuff with data
}

如果試圖從Ajax請求中僅獲取JSON對象,則需要在方法中添加@ResponseBody ,並使結果對象作為方法的返回值。

@ResponseBody告訴Spring他需要序列化您的對象以將其作為內容類型返回給客戶端。 默認情況下,Spring使用JSON序列化。 ModelAndView將嘗試返回.JSP頁面。 也許您的資源上沒有此jsp頁面,所以服務器返回404錯誤。

我認為這段代碼應該適合您:

@RequestMapping(value = "/{room}/handhygiene.json", method = RequestMethod.GET)
public @ResponseBody Room getHandHygienePageAsync(@PathVariable(value = "room") String roomCode) {
    Room room = myService.findRoomByRoomCode(roomCode);
    return room;
}

我假設您使用Room作為結果對象,但是它可能是另一個對象或ArrayList。

您不能在這里查看Spring示例,以及此處的示例和配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM