@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); } })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~