控制器无法识别来自 ajax 的 @requestparam

controller is not recognizing @requestparam from ajax

我正在尝试将 json 从 ajax 发送到 springboot 控制器,但出现错误 [org.springframework.web.bind.MissingServletRequestParameterException:必需项 [] 参数 'myJsonString[]' 不存在]

下面是我的 ajax 代码

$.ajax({
    type: "POST",
    url: "/DBA_TOOLS/admin/tracker",
    data: {myJsonString:myJsonString},
    dataType: "json",
    success: function (data){
        if(data.status == "SUCCESS"){
            alert("AJAX request successfully completed:"+JSON.stringify(data));
        }else{
            console.log('Error Msg'+JSON.stringify(data));
        }
        console.log('Error Msg'+data.message+''+JSON.stringify(data));
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log(jqXHR.status);
        console.log(textStatus);
        console.log(errorThrown);
    },
    complete: function() {

    }
});

下面是我的控制器

@PostMapping(value="/tracker")
public int traker(@RequestParam(value="myJsonString[]") Item[] myJsonString){    

    System.out.println("getting somethig from tracker");
    
    int count=0;
    try{
        for(Item item : myJsonString){
           System.out.println("User  is updating item id "+item.getName());
           //count+= ggProcessRepository.changeAlert(row,isActive);
        }
    }catch(Exception e){
        System.out.println("Exception Occured"+e);
    }
    return count;
}

我尝试使用 requestparam required false 并且它让块工作但是如何将 ajax 数据获取到我的 requestparam 对我来说是一个挑战。

在浏览器调试中,我看到发送的表单数据是 --> myJsonString: [{"name":"product 2","price":20,"quantity":1},{"name": "产品 3","价格":30,"数量":1}]

如果将其更改为:

会发生什么
traker(@RequestParam(value="myJsonString")