springMVC - ajax异步加载404

环境 以及 错误显示:

在这里插入图片描述

页面代码:

在这里插入图片描述

controller 类中:
在这里插入图片描述

在这里插入图片描述

也就是 路径为 … /tj/rbbtj

分析:

原因是 一步加载时的 controller处理器方法中没有加上**@ResponseBody** 注解

@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

上述的错误信息
在这里插入图片描述
可以看到是直接去根路径下找rbbtj了.
, 然后就各种考虑问题, 其中一种认为如下的url 写的不对
在这里插入图片描述
可能会去修改, 最终你终于 凑对了 程序还真的访问到了这个 controller , 通过debug 数据是真真的传了进来, 可是页面上仍然 报着 404 , 这个时候就开始怀疑世界了 , 哈哈
e 我就是走了这么个路程 !!!

最后加上@ResponseBody注解完事.

总结:

  1. 异步加载的时候记得加上 @ResponseBody注解
  2. controller 方法中的@requestMapping 的value值尽量不要和相关页面的名字相同.(xxx.jsp)
  3. 还有jsp页面中的 如上图的ajax -> datagrid 的 url 一定要注意 : 填相对路径, ajax中, url 填相对路径, (相对的是本jsp 页面是从哪个controller 的 路径跳转过来的, -requestMapping的映射路径)
  4. 如果修改了注解类似的配置, 一定要重启应用.

猜你喜欢

转载自blog.csdn.net/fanbaodan/article/details/85329182
今日推荐