Получение строки из почтового запроса ajax в Spring-контроллер - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь отправить некоторые данные из таблицы, используя ajax post запросы, но значения из каждого элемента td отправляются со странными символами, и я не уверен, что будет правильным способом отправки этих значений.

Вот запрос ajax:

<script>
    $(document).ready(function() {
        $("#tableData").on('click', '.btn', function() {
            // get the current row
            var currentRow = $(this).closest("tr");
            var col2 = currentRow.find("td:eq(1)").html(); // get current row 2nd table cell TD value
            var col3 = currentRow.find("td:eq(2)").html(); // get current row 3rd table cell  TD value
            var col4 = currentRow.find("td:eq(3)").html(); // get current row 3rd table cell  TD value


            $.ajax({
                method: "POST",
                url: "/saveAd",
                data: {
                    col2,
                    col3,
                    col4
                },
                success: function(status) {
                    if (status) {
                        console.log("SUCCESS");
                    }
                }
            });
        });

    });
</script>

Контроллер Spring:

@RequestMapping(path = "/saveAd", method = RequestMethod.POST)
    public String saveAd(@RequestBody String col1) {
        System.out.println(col1);

        return "home";
    }

For example if col2 = Test1 test1,
               col3 = Test2 test2,
               col4 = Test3 test3
The printed value would be: col2=Test1+test1&col3=Test2+test2&col4=Test3+test3

Как я могу получить col2, col3, col4 в другой переменной и без этих плюсов?

1 Ответ

0 голосов
/ 26 сентября 2018

Если вы хотите, чтобы все ваши данные были в отдельных переменных, вы должны отправить запрос ajax, как показано ниже:

$.ajax({
    method: "POST",
    url: "http://localhost:8080/orders/saveAd",
    contentType: 'application/json',
    dataType: 'json',
    data: {
        'col2': "1234",
        'col3': "56",
        'col4': "55"
    },
    success: function (status) {
        if (status) {
            console.log("SUCCESS");
        }
    }
});

Создайте соответствующий класс запроса и измените свой контроллер, как показано ниже:

@RequestMapping(path = "/saveAd", method = RequestMethod.POST)
public String saveAd(@RequestBody ColRequest cols) {
    System.out.println(cols.getCol2());

    return "home";
}

@Data // comes from lombok for getter setter purpose
class ColRequest {
    private String col2;
    private String col3;
    private String col4;
}
...