美文网首页
SPRINGMVC POST数组/对象参数接收相关问题

SPRINGMVC POST数组/对象参数接收相关问题

作者: 乔_a988 | 来源:发表于2018-09-14 15:12 被阅读0次

问题引出:Caused by:Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported


今天碰到了这个错误,仔细的查了一下并总结了一下相关知识点。做一个总结。

原因:在Controller中使用了@RequestBody来接收参数对象,并且前端使用的是form提交。


正解:SpringMVC 接收对象或者数组的两种方式组合

1.前端直接使用form的submit提交(可以jquery.ajaxsubmit)。此时后端应该去掉@RequestBody注解直接直接使用对象接收参数。传数组的时候前端使用 name=foo[0].bar,  Controller参数Object o,o内部包含属性private List<Foo> foo, foo有个属性bar 可以成功接收。也可以直接裸的List<Foo> foo来接。

2.前端使用json对象提交。此时后端用一个对象去接,需要使用@RequestBody注解,保证该对象的JSON.toJsonString之后的结构和你前端提交过来的json对象结构一致即可转换成功。

两种方式用混了就会报上面的错误。但是报上面错误的原因并不只有这一种,网上说的包冲突坑人不浅(如果你没有用包管理工具,那就当我没说~)

相关文章

网友评论

      本文标题:SPRINGMVC POST数组/对象参数接收相关问题

      本文链接:https://www.haomeiwen.com/subject/onyogftx.html