springMVC中 @RequestParam和@RequestBody的区别
来源:互联网 发布:ibatis sql注入 编辑:程序博客网 时间:2024/06/14 05:29
首先,不可以同时传进@RequestParam和@RequestBody,好像可以传进两个@RequestParam
如果不加@requestparam修饰,相当于 加上@requestparam且各个requestparam的属性值都为默认的!
@RequestParam
A) 常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况( 由String到 简单类型的转换操作由ConversionService配置的转换器来完成);因为使用request.getParameter()方式获取参数,所以可以处理get 方式中queryString的值,也可以处理post方式中 body data的值。
B)用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式GET、POST。(不设置这个属性,好像这就是默认值)
C) 该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定。
在方法参数里面如是:public @ResponseBody JsonResult getPublishedToposByConnStreamId(@RequestParam(value = "streamId", required = false) String streamId) {}
@RequestBody
A) GET、POST方式提时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
multipart/form-data, 不能处理(次类型多用来上传文件类型---即使用@RequestBody不能处理这种格式的数据,@RequestParam这个却是可以处理的。);
其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
B) PUT方式提交时, 根据request header Content-Type的值来判断:(表示没见过put方式滴,可以无视吧。)
application/x-www-form-urlencoded, 必须;
multipart/form-data, 不能处理;
其他格式, 必须;
说明:request的body部分的数据编码格式由header部分的Content-Type指定;
最后
就我的经验来看:
@RequestBody这个一般处理的是在ajax请求中声明contentType: "application/json; charset=utf-8"时候。也就是json数据或者xml(我没用过这个,用的是json)
@RequestParam这个一般就是在ajax里面没有声明contentType的时候,为默认的。。。
- springMVC中 @RequestParam和@RequestBody的区别
- @RequestParam和@RequestBody的区别-------springMVC
- SpringMVC @requestBody和requestParam
- @RequestBody和@RequestParam区别
- @RequestBody和@RequestParam区别
- requestparam和requestbody区别
- @RequestBody和@RequestParam区别
- @RequestBody和@RequestParam区别
- @RequestBody和@RequestParam区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@PathVariable 和 @RequestParam 的区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@RequestParam和@PathVariable的区别
- springmvc中@PathVariable和@RequestParam的区别
- spring @RequestBody和@RequestParam区别
- @PathVariable、@RequestParam、@RequestBody的区别
- 【spring ----- 注解篇】 常用注解
- 百度云bae发布代码失败怎么处理
- Dictionary<string, List<string>> 的使用
- select、 poll 、epoll 区别与联系
- 关于winodows下编程c++遇到的引用文件路径问题
- springMVC中 @RequestParam和@RequestBody的区别
- 优雅的JavaScript-基础语法详解
- Eclipse的Thymeleaf代码提示功能
- 【教程】Edraw Max(亿图图示):怎么用图片创建自己的符号库?
- Python3之函数认识
- Linux文件权限包含特殊权限
- 【Java集合源码剖析】LinkedList源码剖析
- laravel框架总结 -- 数据迁移和数据填充
- 图片控件 imageView listView Spinner