1、问题描述:
后台使用 springBoot , 前端使用 vue 的 axios 做 put 请求,但是后台无法接受到数据。
@PutMapping("/status/{id}")
public Object updateProductionStatus(@PathVariable("id") String productionId, @RequestBody Integer status)
前端的 请求头:
以 json 格式上传, spring 用 @RequestBody接受数据。 但是提示接收不到数据。
尝试使用 @ModelAttribute 接收。 但是 @ModelAttribute 需要使用一个对象去接受。 单纯的使用 基本数据类型, 他会抛
严重: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.lang.Integer]: No default constructor found; nested exception is java.lang.NoSuchMethodException: java.lang.Integer.<init>()] with root cause
java.lang.NoSuchMethodException: java.lang.Integer.<init>()
这个异常。
我将参数使用?status=xxx 的形式 上传是可以的, 但是问题是,我想把这个数据不写到URL 上面,想以 request payload 的形式 或者 以 Form data 的形式 上传, 我该怎么做
一、使用
Map
接收,因为你的json对象是{status:1}
,这是一个键值对二、也可以让axios只发送
1
这样你就可以使用你原来的接口接收二的具体例子如下