@RequestBody与@RequestParam

news/2024/10/30 15:34:13/

@RequestBody与@RequestParam

  • @RequestBody
    • 了解注解
    • 使用注解
  • @RequestParam
    • 了解注解
    • 使用注解
  • 总结

@RequestBody

1、注解@RequestBody接收的参数是来自请求体中的,一般用于处理非Content-Type:application/x-www-form-urlencoded编码格式的数据,一般用于处理:application/json、application/xml等类型数据
2、@RequestBody不能在同一个方法中出现多次
3、@RequestBody,接收的参数是来自请求体中的,一般对应使用的请求是POST请求
4、GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。
5、POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type,SpringMVC通过使用HandlerAdapter 配置的HttpMessageConverters来解析HttpEntity中的数据,然后绑定到相应的bean上。

了解注解

package org.springframework.web.bind.annotation;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestBody {boolean required() default true;
}

使用注解

在这里插入图片描述
在这里插入图片描述

@RequestParam

1、⽤来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容。(Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form-urlencoded类型)

了解注解

required 表示是否必须,默认为 true,必须。
defaultValue 可设置请求参数的默认值。
value 为接收url的参数名(相当于key值)。

package org.springframework.web.bind.annotation;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {@AliasFor("name")String value() default "";@AliasFor("value")String name() default "";boolean required() default true;String defaultValue() default "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n";
}

使用注解

controller
在这里插入图片描述
请求该接口相当于:

在这里插入图片描述

总结

1.Post请求接收@RequestBody修饰的参数和@RequestParam修饰的参数,而Get请求则只能接收@RequestParam修饰的参数。
2.如果前端传的是Json类型的对象,后台就要使用@RequestBody修饰的实体类接收,如果是单个属性就使用@RequestParam修饰的变量或实体类。
3、@RequestBody和@ResquestParam()可以在同一个接口中一起用,@RequestBody最多只能有一个,而@ResquestParam()可以有多个


http://www.ppmy.cn/news/40731.html

相关文章

9.Nuxt.js的使用

九.Nust.js的使用 1.什么是SEO 2.百度的搜索结果 3.服务器端和客户端渲染 4.Nuxt.js技术简介 5.Nuxt.js的路由(使用提供的nuxt-app项目初始化) 6.Nuxt.js的页面布局和整体配置 7.Nuxt.js整合axios 九.Nust.js的使用 1.什么是SEO ①SEO SEO是通…

SQL Server的事务日志

事务日志 (SQL Server)一、背景二、事务日志支持的操作2.1、单个事务恢复2.2、在启动 SQL Server 时恢复所有未完成的事务2.3、将还原的数据库、文件、文件组或页前滚到故障点2.4、支持事务复制2.5、支持高可用性和灾难恢复解决方案三、事务日志特征四、…

学习【菜鸟教程】【C++ 类 对象】【C++ 类访问修饰符】(尚未搞懂!)

目录1、公有(public)成员2、 私有(private)成员3、 protected(受保护)成员4、 继承中的特点4.1 public 继承(尚未搞懂!)4.2 protected 继承(尚未搞懂&#xf…

5 大手段,打造单一可信源代码托管平台|极狐GitLab DevSecOps 助力 SLSA 落地之源代码篇

🤔什么是 SLSA? SLSA( Supply chain Levels for Software Artifacts) 是一个安全框架,一系列关于标准和控制的清单,用来防止篡改、提高完整性以及保护项目、业务以及企业中软件包与基础设置的安全。 SLSA 安…

机器学习:朴素贝叶斯模型算法原理(含实战案例)

机器学习:朴素贝叶斯模型算法原理 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏&…

ROS学习——rotors仿真下载与运行

rotors 无人机仿真主要分为两类:硬件在环仿真(HITL)和软件在环仿真(SITL全称Software in the loop)。 无人机软件在环仿真是指完全用计算机来模拟出无人机飞行时的状态,而硬件在环仿真是指计算机连接飞控…

代码随想录算法训练营第五十二天| 300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组。

300. 最长递增子序列 题目链接:力扣 题目要求: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如&am…

Java基础(一)Java语言概述及入门

1 Java语言概述 1.1Java概述 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(appl…