Контроллер не распознает @requestparam из ajax

я пытаюсь отправить json из ajax в контроллер springboot, но получаю сообщение об ошибке [org.springframework.web.bind.MissingServletRequestParameterException: параметр Required Item [] '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":"product 3", «цена»: 30, «количество»: 1}]

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
9
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что произойдет, если вы измените его на:

traker(@RequestParam(value="myJsonString")

это изменило мою ошибку на: [org.springframework.web.method.annotation.MethodArgumentCon‌​versionNotSupportedE‌​xception: не удалось преобразовать значение типа 'java.lang.String' в требуемый тип 'com.munish.app.model.Item[ ]'; вложенным исключением является java.lang.IllegalStateException: невозможно преобразовать значение типа «java.lang.String» в требуемый тип «com.munish.app.model.Item»: не найдены подходящие редакторы или стратегия преобразования], я думаю, что буду смог решить, опубликую решение, если получится

munish 09.04.2022 10:29

Другие вопросы по теме