当前位置: 首页 > news >正文

@Responsebody与@RequestBody

@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestMapping(value = "/aaa")//类级别,可以没有
public class myController {
    @RequestMapping(value = "/bbb")//方法级别,必须有
    public String getMyName() {
        return "myReturn";
    }
}
对应的action就是:<form action="aaa/bbb">
返回页面就是myReturn.jsp

@Responsebody与@RequestBody
@Responsebody表示该方法的返回结果直接写入HTTP response body中
一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,
加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。
比如异步获取json数据,加上@Responsebody后,会直接返回json数据。
@RequestBody将HTTP请求正文插入方法中,使用适合的HttpMessageConverter将请求体写入某个对象。
function login() {//页面异步请求
    var mydata = '{"name":"' + $('#name').val() + '","id":"'
            + $('#id').val() + '","status":"' + $('#status').val() + '"}';
    $.ajax({
        type : 'POST',
        contentType : 'application/json',
        url : "${pageContext.request.contextPath}/person/login",
        processData : false,
        dataType : 'json',
        data : mydata,
        success : function(data) {
            alert("id: " + data.id + "\nname: " + data.name + "\nstatus: "
                    + data.status);
        },
        error : function() {
            alert('出错了!');
        }
    });
};
    @RequestMapping(value = "person/login")
    @ResponseBody
    public Person login(@RequestBody Person person) {//将请求中的mydata写入Person对象中
        return person;//不会被解析为跳转路径,而是直接写入HTTP response body中
    }


扩展:@PathVariable获取请求路径变量
function profile() {
    var url = "${pageContext.request.contextPath}/person/profile/";
    var query = $('#id').val() + '/' + $('#name').val() + '/'
            + $('#status').val();
    url += query;
    $.get(url, function(data) {
        alert("id: " + data.id + "\nname: " + data.name + "\nstatus: "
                + data.status);
    });
}
    @RequestMapping(value = "person/profile/{id}/{name}/{status}")
    @ResponseBody
    public Person porfile(@PathVariable int id,@PathVariable String name,@PathVariable boolean status) {
        return new Person(id, name, status);
    }

  //@RequestMapping(value = "/person/profile/{id}/{name}/{status}")中的{id}/{name}/{status}与@PathVariable int id, @PathVariable String name,@PathVariable boolean status一一对应,按名匹配。



转载自:http://www.cnblogs.com/guodefu909/p/4216327.html

相关文章:

  • Maven的生命周期阶段
  • Linux中的tar命令
  • Lombok 学习
  • Linux Makefile 详细语法
  • Http请求中Content-Type讲解以及在Spring MVC中的应用
  • Charles 从入门到精通
  • Java中的8种基本数据类型
  • 搭建Nginx+Java环境
  • ajax与302响应
  • 服务器缓存技术
  • squid学习(一)
  • 使用Redis之前5个必须了解的事情
  • 大数据框架 Hadoop 和 Spark 的异同
  • 下载tomcat9并正常启动后,浏览器无法显示localhost:8080对应网页
  • Java对象的序列化和反序列化
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • ES6 学习笔记(一)let,const和解构赋值
  • Git的一些常用操作
  • iOS 系统授权开发
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Linux链接文件
  • MYSQL 的 IF 函数
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • 对象引论
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​什么是bug?bug的源头在哪里?
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $$$$GB2312-80区位编码表$$$$
  • (C++20) consteval立即函数
  • (二)windows配置JDK环境
  • (区间dp) (经典例题) 石子合并
  • (五)MySQL的备份及恢复
  • (转)iOS字体
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net framework4与其client profile版本的区别
  • .NET学习全景图
  • .NET中的Exception处理(C#)
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [1] 平面(Plane)图形的生成算法
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [c++] C++多态(虚函数和虚继承)
  • [dfs] 图案计数
  • [FT]chatglm2微调