首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ModelAndView出现.getJSON 404错误

ModelAndView出现.getJSON 404错误
EN

Stack Overflow用户
提问于 2013-02-24 03:59:18
回答 1查看 774关注 0票数 0

我正在尝试通过调用控制器来检索javascript中的一些JSON数据。控制器返回一个MappingJacksonJsonView ModelandView,但是.getJSON总是在.../handsechancene.json上报告404。

从控制器返回ModelandView的方式有问题吗?

控制器

代码语言:javascript
复制
@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;
}

Javascript

代码语言:javascript
复制
var currentURL = window.location;
$.getJSON(currentURL + ".json",
    function(data) {
    ... //does stuff with data
}
EN

回答 1

Stack Overflow用户

发布于 2013-02-24 11:27:47

如果您试图从Ajax请求中仅获取一个JSON对象,则需要将@ResponseBody添加到您的方法中,并使您的方法返回结果对象。

@ResponseBody告诉Spring,他需要序列化您的对象以作为content-type返回给客户端。默认情况下,Spring使用JSON序列化。ModelAndView将尝试返回一个.JSP页面。也许您的资源上没有这个jsp页面,所以服务器返回404错误。

我认为这段代码应该适用于您:

代码语言:javascript
复制
@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。

你不能用here作为Spring的例子,用here来做例子和配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15044969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档