SpringMVC 之RequestBody

2022-09-16 10:56:44

SpringMVC 之RequestBody

简介:
@RequestBody
作用:
i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
使用时机:
A) GET、POST方式提时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
B) PUT方式提交时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 必须;
multipart/form-data, 不能处理;
其他格式, 必须;
说明:request的body部分的数据编码格式由header部分的Content-Type指定;
@ResponseBody
作用:
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

  def CreateSubplan(@RequestBody Map<String, Object> params){
    JSONObject response = new JSONObject()
    String name = params.get("name")
    String category_1 = params.get("category")
    String category_2 = params.get("group")
    String product_name = params.get("product")
    String start_time = params.get("start_time")
    String end_time = params.get("end_time")
    String price = params.get("drivers").get("price")
    String discount = params.get("drivers").get("effect_discount")
    String coupon = params.get("drivers").get("effect_coupon")
    String effect_ln_baseprice = params.get("drivers").get("effect_ln_baseprice")
    String debut = params.get("drivers").get("effect_debut")

将Object类型强转成String

不知道为什么

 def CreateSubplan(@RequestBody Map<String, String>params){
        JSONObject response =new JSONObject()
        def name =params.get("name")
        def category_1 =params.get("category")
        def category_2 =params.get("group")
 String类型不生效,有高手求解答。。
  • 作者:琼小宝的崔二宝
  • 原文链接:https://blog.csdn.net/qq_33651662/article/details/69278664
    更新时间:2022-09-16 10:56:44