put和post携带数据的区别和后端接收数据的一些疑问

问题遇到的现象和发生背景

我在把请求post改成put后,就发现后端接收不了数据,只知道一个用于增加一个用于修改,不知道怎么让put携带一个类的数据

问题相关代码,请勿粘贴截图

用post时是可以的,把post改成put后就会报500,我应该怎么写才能让他携带一个实体类

    @PostMapping("updateMedicineByMid")
    @ResponseBody
    public JsonResult<Void> updateMedicineByMid(Medicine medicine){
        medicineService.updateMedicineByMid(medicine);
        return new JsonResult<>(200);
    }
$("#sure").click(
        function deleteMedicineList(){
            $.ajax({
                url:"${pageContext.request.contextPath}/updateMedicineByMid",
                type:"post",
                data:$("#updateForm").serialize(),
                dataType:"json",
                success:function(json){
                    if(json.state == 200)
                        location.href = "${pageContext.request.contextPath}/medicineList.jsp";
                },
                error:function (json){
                    alert("失败")
                }
            })
        }
    )

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果
  1. 前端请求方式改为type:"put"
  2. 后端响应改为@PutMapping("/updateMedicineByMid")
  3. 参数前最好加上@RequestBody,updateMedicineByMid(@RequestBody Medicine medicine)
    如果没有其他的问题的话应该就可以了。不过你这个错误是SQL语句参数有问题呀