• @RequestBody的使用


    @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),而RequestParam接收的是key-value里面的参数;GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。

    在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用

    @RequestBody最多只能有一个,而@RequestParam()可以有多个。

    一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。

    json字符串中,如果value为""的话,后端对应属性如果是String类型的,那么接受到的就是"",如果是后端属性的类型是Integer、Double等类型,那么接收到的就是null。

    json字符串中,如果value为null的话,后端对应收到的就是null。

    如果某个参数没有value的话,在传json字符串给后端时,要么干脆就不把该字段写到json字符串中;要么写value时, 必须有值,null  或""都行

    结论①:@JsonAlias注解,实现:json转模型时,使json中的特定key能转化为特定的模型属性;但是模型转json时,
                   对应的转换后的key仍然与属性名一致

    结论②:@JsonProperty注解,实现:json转模型时,使json中的特定key能转化为指定的模型属性;同样的,模
                   型转json时,对应的转换后的key为指定的key

    结论③:@JsonAlias注解需要依赖于setter、getter,而@JsonProperty注解不需要。

    结论④:在不考虑上述两个注解的一般情况下,key与属性匹配时,默认大小写敏感。

    结论⑤:有多个相同的key的json字符串中,转换为模型时,会以相同的几个key中,排在最后的那个key的值给模
                   型属性复制,因为setter会覆盖原来的值。见示例中的gender属性。

    结论⑥:后端@RequestBody注解对应的类在将HTTP的输入流(含请求体)装配到目标类(即:@RequestBody后面
                   的类)时,会根据json字符串中的key来匹配对应实体类的属性,如果匹配一致且json中的该key对应的值
                   符合(或可转换为)实体类的对应属性的类型要求时,会调用实体类的setter方法将值赋给该属性。

    1.@RequestMapping

    @RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法

     @PathVariable 注解,其用来获取请求路径(url )中的动态参数。

    @RequestMapping(value = "user/login/{id}/{name}/{status}")
    @ResponseBody
    //@PathVariable注解下的数据类型均可用
    public User login(@PathVariable int id, @PathVariable String name, @PathVariable boolean status) {
    //返回一个User对象响应ajax的请求
    return new User(id, name, status);
    }

    @ResponseBody
    @Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。
    作用:
    该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

    版权声明:本文为CSDN博主「justry_deng」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/justry_deng/article/details/80972817

  • 相关阅读:
    web通信浅析(上B/S交互)转载
    tomcat内部运行原理浅析转载
    oracle集合运算
    Oracle 游标使用全解
    oracle 一些基本概念
    1.搭建项目环境之TestDirector 8.0
    修改Win7远程桌面端口
    从第二份工作开始
    2.搭建项目环境之源代码管理SVN
    How to Get IIS Web Sites Information Programmatically
  • 原文地址:https://www.cnblogs.com/baojunblog/p/11387714.html
Copyright © 2020-2023  润新知