AJAX-запрос на отправку нулевого параметра в контроллер Java Spring - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь выполнить простой запрос POST, но по какой-то причине мой параметр Integer равен нулю. Это что-то настолько простое, но я не вижу, что я делаю здесь неправильно.

Вот что я пробовал до сих пор:

$rootScope.addUser = function(userId) {
            $http.post('/addUser', {
                params: {
                    user_id: userId
                }
            }).then(function(result) {
                $rootScope.userId = undefined;
            });
        };

Контроллер

@PostMapping("/addUser")
public void addTournament(@RequestParam(required = false) final Integer userId) {
    LOG.info("addUser: {}" , userId);
}

Я также пытался сделать @RequestParam(name = "user_id") final Integer userId, но даже это тоже не работает!

В конце я удалю параметр 'required = false', но я оставил его там пока только для проверкичто userId действительно равен нулю.

Ввод получен от пользователя, который вводит число и нажимает кнопку.

1 Ответ

1 голос
/ 02 ноября 2019

Имя @RequestParam не совпадает с именем отправленного атрибута: user_id vs userId . Используйте @RequestParam(name = "user_id") final Integer userId, чтобы сопоставить их, или используйте тот же атрибут запроса и @RequestParam имя.

[править]

Когда я прочитал params: { ... }, я ожидал, что они будут дополнительными параметрами запроса вместобыть частью тела POST. Не могли бы вы попробовать POSTing данные, используя:

$http.post('/addUser', { userId: userId }

И используя следующее @PostMapping:

@PostMapping("/addUser")
public void addTournament(@RequestBody User user) {
    LOG.info("addUser: {}" , user.getUserId());
}

...

class User {
private String userId;

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