Spring中Responsebody注解的作用[通俗易懂]

Spring中Responsebody注解的作用[通俗易懂]好长一段时间以来都只是写些测试代码,好久没写项目代码了,以至于sping那套东西日渐生疏了。最近在折腾一个小项目,写了一个controller用来响应ajax请求,结果断点调试发现一直返回"404…notresponse…",折腾了快2小时,一直没想到是注解的问题,万般无赖之下上了度娘,方才如梦初醒,特意记录一下,一来提醒一下自己,二来也让跟我遇到一样问题的朋友少受些折磨。这个注解表示…

大家好,又见面了,我是你们的朋友全栈君。

好长一段时间以来都只是写些测试代码,好久没写项目代码了,以至于spring那套东西日渐生疏了。最近在折腾一个小项目,写了一个controller用来响应ajax请求,结果断点调试发现一直返回”404 …not response…”,折腾了快2小时,一直没想到是注解的问题,万般无赖之下上了度娘,方才如梦初醒,特意记录一下,一来提醒一下自己,二来也让跟我遇到一样问题的朋友少受些折磨。

 

这个注解表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用。

在使用@RequestMapping后,返回值通常解析为跳转路径。加上@responsebody后,返回结果直接写入HTTP response body中,不会被解析为跳转路径。比如异步请求,希望响应的结果是json数据,那么加上@responsebody后,就会直接返回json数据。
 

 
		@RequestMapping(value="/publish" ,produces="application/json;charset=UTF-8")
		public Object publish()throws Exception{
			Map<String,String> map = new HashMap<String,String>();
			ModelAndView mv = this.getModelAndView();
			PageData pd = new PageData();
			pd = this.getPageData();
			。。。
			map.put("result", "success");
			return AppUtil.returnObject(new PageData(), map);
		}

 

 

 

例如,在我用来响应ajax请求的上述方法中,因为没加@responsebody, responseCode一直是404。后来像下面这样加上后, responseCode就是200了,一切正常了。

 

 

 

 

 
		@RequestMapping(value="/publish" ,produces="application/json;charset=UTF-8")
                @ResponseBody
		public Object publish()throws Exception{
			Map<String,String> map = new HashMap<String,String>();
			ModelAndView mv = this.getModelAndView();
			PageData pd = new PageData();
			pd = this.getPageData();
			。。。
			map.put("result", "success");
			return AppUtil.returnObject(new PageData(), map);
		}

 

 

 

 

 

 

 

 

 
 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140645.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Matlab】如何规范地编写一个MATLAB函数文件

    【Matlab】如何规范地编写一个MATLAB函数文件在matlab中,M文件分为脚本文件和函数文件。如果M文件的第一个可执行语句以function开头,那这个M文件就是函数文件。函数文件内定义的变量为局部变量,只在函数文件内部起作用,当函数文件执行完后,这些内部变量将被清除。本文介绍如何规范地编写一个函数文件。通常,函数文件由函数声明行、H1行、在线帮助文本区、编写和修改记录、函数主体等几个部分组成。格式如下:function输出形参…

    2022年7月17日
    12
  • Fetch failed: unable to access http://dev.123.cn:123/git/123/213.git/

    Fetch failed: unable to access http://dev.123.cn:123/git/123/213.git/

    2020年11月9日
    210
  • ibm x201 怎么清理内部_维修小技巧 篇五:ThinkPadX201i拆机换散热风扇清灰教程

    ibm x201 怎么清理内部_维修小技巧 篇五:ThinkPadX201i拆机换散热风扇清灰教程维修小技巧篇五:ThinkPadX201i拆机换散热风扇清灰教程2020-11-2521:45:4416点赞14收藏42评论创作立场声明:拆装有风险、拆装有风险、拆装有风险,欢迎收藏,点赞,打赏,关注。(๑ºั╰╯ºั๑)大家好我是况天佑,我们又见面啦。家中使用许久的ThinkPadX201i开机后会自动关机,参考度娘的教程大几率散热风扇问题,散热风扇不正常导致过热而自动关机,速度拼多多下单…

    2022年6月27日
    122
  • ubuntu tftp 端口 NFS端口固定与防火墙「建议收藏」

    ubuntu tftp 端口 NFS端口固定与防火墙「建议收藏」在ubuntu中安装tftp服务安装tftpsudoapt-getinstalltftp-hpatftpd-hpa创建/tftpboot文件夹TFTP需要一个文件夹来存放文件,我们在根目录下新建一个/tftpboot目录做为TFTP文件存储目录,之所以使用该目录是因为后面使用的Petalinux工具默认使用该目录,省得我们每次建Petalinux工程的时候手动修改。创建/tftpboot目录命令如下:sudomkdir-p/tftpbootsudo

    2022年6月27日
    41
  • maven – filtering标签

    maven – filtering标签方式一 首先在 pom xml 文件中做出以下添加 nbsp lt project gt lt name gt HelloWorld lt name gt lt build gt lt resources gt lt resource gt lt directory gt src m

    2025年11月23日
    3
  • 基于SRS的视频直播服务器搭建

    基于SRS的视频直播服务器搭建srs提供的一个demo实例,包括实时流的rtmp播放,hls播放,视频会议,ffmpeg视频变换,jwplayer播放,OSMF播放,vlc播放等等功能.

    2022年6月7日
    93

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号