SpringMVC参数封装使用总结

一、springMVC自动封装

1、传递参数

(1)、GET请求方式传递 参数
    后端代码:test(String paramName,String paramName1)
    前端代码:$.get(basePath + "/api/params/test?paramName=111&paramName1=222"
(2)、POST请求方式传递 参数
    后台代码:test(String paramName,String paramName1)
    前端代码:$.post(basePath + "/api/params/test?paramName=111&paramName1=222"

2、传递实体类

(1)、GET请求方式传递 实体类
    后端代码:test(ParamsEntity paramsEntity)
    前端代码:$.get(basePath + "/api/params/test", data
(2)、POST请求方式传递 实体类
    后端代码:test(ParamsEntity paramsEntity)
    前端代码:$.post(basePath + "/api/params/testPost4", data

总结:

  • 默认的ContentType的值为:application/x-www-form-urlencoded; charset=UTF-8 此格式为表单提交格式。
  • 不加任何注解的情况下可以接收Get请求和Post请求以x-www-form-urlencoded提交的数据,如果遇到对象类型或者数组类型的参数,可以在前端将参数转成JSON格式的字符串,后端用String类型来接收,再进行转换。
  • 不加任何注解的情况下就不能接收(Post请求)以appilaciton/json方式提交的数据。

二、springMVC使用注解

1、@RequestParam

(1)、GET请求方式传递 参数
    后端代码:test(@RequestParam("paramName") String paramName)
    前端代码:$.get(basePath + "/api/params/test?paramName=111
(2)、POST请求方式传递 参数
    后端代码:test(@RequestParam("paramName") String paramName)
    前端代码:$.post(basePath + "/api/params/test", data

总结:

  • @RequestParam只能处理参数(某一属性)不能处理实体类,但使用@RequestParam 接受JSON的字符串 然后后端再处理。
  • @RequestParam只能接收Get请求和Post请求以application/x-www-form-urlencoded编码方式传来的数据。
  • 但是不能接收(Post请求)以appilaciton/json方式传来的数据。

2、@Requestbody

(1)、POST请求方式传递 实体类
    后端代码:test(@Requestbody("paramsEntity") ParamsEntity paramsEntity)
    前端代码:$.ajax({url:'', type: "POST", data: data, async: false, dataType:"json"

总结:

  • @Requestbody只能接收Post请求以application/json编码方式提交的数据,而且可以接收对象数组。
  • @Requestbody不支持Get请求接收数据
  • @Requestbody不支持接收以x-www-form-urlencoded编码方式提交的数据。

3、@PathVariable

(1)、GET请求方式传递 参数
    后端代码:@GetMapping("/testGet2/{paramName}")  test(@PathVariable String paramName)
    前端代码:$.get(basePath + "/api/params/testGet2/111112333"
(2)、POST请求方式传递 参数
    后端代码:@PostMapping("/testPost2/{paramName}")  test(@PathVariable String paramName)
    前端代码:$.post(basePath + "/api/params/testPost2/111112333"

总结:

  • @PathVariable可以接收Get请求和Post请求方式传来的数据。
  • @PathVariable对ContentType内容没要求,且可以一次传多个参数。

最后总结

 ContentTypeGetPost参数实体类
自动封装application/x-www-form-urlencoded
@RequestParamapplication/x-www-form-urlencoded 
@Requestbodyapplication/json  
@PathVariableapplication/x-www-form-urlencoded
application/json
 

工作中使用到,一直看别人写的不是很全面,就自己简单总结了下,有什么不对的地方大佬们可以指出来,我再改正,谢谢大家~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值