前言
最近做的一个功能里面接触到了Spring相关的一些知识点,目前还没系统学Spring,先根据遇到的问题零碎学习并进行总结。后续系统学习Spring后再整体做总结。
开发这个功能遇到一个问题,原本接口参数中有@RequestBody,后续需求变更又加了@RequestParam,测试的时候报Json parser error的错误,网上查询说是这两个东西不能同时存在一个方法的参数列表中(json无法与form兼容),后面将@RequestBody改为@ModelAttribute解决问题。网上查询学习这三个注解 现进行简单记录。
知识点
当前台界面使用GET或POST方式提交数据时,数据编码格式由请求头的ContentType指定。分为以下几种情况:
1. application/x-www-form-urlencoded,这种情况的数据@RequestParam、@ModelAttribute可以处理,@RequestBody也可以处理。
2. multipart/form-data,@RequestBody不能处理这种格式的数据。(form表单里面有文件上传时,必须要指定enctype属性值为multipart/form-data,意思是以二进制流的形式传输文件。)一般使用@RequestParam处理
3. application/json、application/xml等格式的数据,必须使用@RequestBody来处理
4. 如果同步application/json和fo