Получить параметр URL на контроллере Spring из приложения Angular

0

В моем контроллере весны у меня есть следующее:

@RequestMapping(value = "/users/{id}", method = RequestMethod.DELETE)
@ResponseBody
public void deleteUser(@RequestParam(value = "id") long id) throws Exception {
    users.delete(id); // It works on tests
}

Здесь я хочу удалить переданного пользователя в URL (из его идентификатора).

В моем приложении AngularJS у меня есть этот модуль:

angular.module('app')
    .factory('DeleteUserService', function($resource) {
        return $resource('/users/:id', {id:'@id'}, {
            deleteUser: {
                method:'DELETE',
                headers : {'Content-Type': 'application/json'}
            }
        });
    });
});

Я вызываю модуль с моей страницы администрирования пользователя, следующим образом:

DeleteUserService.deleteUser({id:$scope.id}, function() { //$scope.id = 15
    console.log('Correctly deleted!');
});

Проблема в том, что я получаю ошибку 400 Bad Request: DELETE http://localhost:8080/users/15 [HTTP/1.1 400 Required long parameter 'id' is not present 2ms]

Я не понимаю, почему мой контроллер не видит параметр:/

Не могли бы вы помочь мне найти проблему?

Спасибо, не стесняйтесь, если вам нужен дополнительный код.

Теги:
spring

1 ответ

2
Лучший ответ

В этом случае вы должны использовать @PathVatiable вместо @RequestParam.

  • 1
    Я думаю, что это @PathVariable, а не @PathParam.
  • 0
    @PathParam специфичен для Jax-rs, OP не упоминает jax-rs, только весна!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню