@RequestParam 和@RequestBody区别

一 引言

本文简单区别介绍一下这两个常用注解的使用,主要包括前端请求方式,前端请求内容格式,后端入参。

 

二 @RequestParam

参数:

name: 请求参数名,即将请求参数中名为name的给后端参数

value: name和value互为别名,两者的作用一致

required: 是否必须传入该参数,默认为true

defaultValue: 请求参数中没有该参数时的参数默认值

入参请求方式:

1 当使用@RequestParam接收参数时,前端get或post请求都可以,最重要的是contentType一般为application/x-www-form-urlencoded,至于前端参数放在url或者data中都可以,最后请求时均会并入请求URL中。

2 @RequestParam,可以在一个方法中多次使用:

public List<AdminArea> getSelect(
            @RequestParam(value="queryTableName")String queryTableName,
            @RequestParam(value="queryAdminCode") String queryCode
            )

 

二 @RequestBody

参数:

  required:

入参请求方式:

1 @RequestBody接收参数时,必须使用post,一般用json格式进行传参,在前端传入时,可以使用JSON.stringify()进行json字符串转换。参数必须放在data也就是请求体中。

2 @RequestBody,在一个方法中只能使用一次。

 

三 多种类型参数传递

多种参数传参情况,如后端需要传入String 类型和自定义对象类型的参数,可以将@RequestParam和@RequestBody一起使用:

后端接收参数:

public int get(
            @RequestParam(value="code")String code,
            @RequestParam(value="name") String name,
            @RequestBody Area area
    ){

 

前端发送请求:

复制代码
//json,需放入请求体data
var area = {
                "name":"大名",
                "class": "一班",
            }

//将需要传入@RequestParam的参数并入请求URL
var param = "?code="+"123"+"&name"+"小名"//ajax请求
$.ajax({
                url: url+param,
                type: "POST",
                data: JSON.stringify(area),
                contentType: "application/json",
                success: function (res) {
                    console.log(res);
                }
            })
复制代码

 

posted @   v隐曜  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
我是页脚
点击右上角即可分享
微信分享提示