Как прочитать два объекта json в весеннем загрузочном контроллере - PullRequest
0 голосов
/ 16 февраля 2019

Я новичок в Java, я пытаюсь передать два объекта json из вызова ajax в класс контроллера ... но я получаю ниже исключения

Resolved exception caused by Handler execution: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.lang.String com.controllers.EmployeeController.saveData(java.lang.String,com.entities.EmployeeData,org.springframework.validation.BindingResult)

Код Jquery:

$("#saveData").submit(function(event) {          
    var data = [];
    var formData = {};
    var myJsonString;       
    var slab, lower;
    $("table tbody tr").each(function(index) {
        //alert(index);
       slab = $(this).find('.slab').val();
       lower = $(this).find('.lower').val();
      if(slab != undefined && lower != undefined){
        var form1 =new Object();
    form1.slab=slab;
    form1.lower=lower;
    data.push(form1);
      }         
    });
    var form = this;
    event.preventDefault();      
        $.each(this, function(i, v){
        var input = $(v);      
        formData[input.attr("name")] = input.val();
        });
    var url = "/Portal/SaveData";       
    ajaxCall(url,formData,data);

});
function ajaxCall(url,formData,data){   
    //alert("AjaxPost!!!"+url);
    // DO POST
    $.ajax({
        type : "POST",
        contentType : "application/json",
        url : url,
        data : JSON.stringify({formData:formData,value:data}),
        dataType : 'json',
        beforeSend: beforeSendHandler,
        success : function(response) {
            alert("Success");
            }else{          
                alert("else");
            }               
        },
        error : function(e) {
            bootbox.alert({ 
                  size: "small",
                  title: "ALERT",                   
                  message: "There seems to be some problem while Proccessing record!"
                })

        }
    });
}

Метод контроллера:

@RequestMapping(value = "/SaveData", method = RequestMethod.POST)
public @ResponseBody String saveData(@RequestBody String value,@Valid @RequestBody EmployeeData emp, BindingResult result) {
System.out.println(" Creating!!!");
//logic here
}

Где ошибка в вызове ajax или в файле контроллера?Есть ли другой способ передать несколько объектов JSON в файл класса контроллера?

1 Ответ

0 голосов
/ 16 февраля 2019

Предполагается, что аннотация @RequestBody будет отображаться в одном и только одном параметре в вашем методе и будет содержать все содержимое входящего запроса.

Вы должны отобразить все данные формы в один объект JSON, а затем обработать это как один объект JSON в бэкэнде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...