Как соединить angularjs $ http.get с весенним @GetMapping - PullRequest
0 голосов
/ 08 марта 2019
    $scope.getProjectDetails = function(theId){
       $http.get('${pageContext.request.contextPath}/api/project', {params: {theId}})
          .then(function(response){
             $scope.project = response.data;
          });
       }

этот генерирует:

GET http://localhost:8080/editor-application/api/project?theId=1 404

а весенний отдых хочет:

http://localhost:8080/editor-application/api/project/1 

Контроллер:

@GetMapping("/project/{theId}")    
public Project getProject(@PathVariable int theId) {

return editorService.getProject(theId);
}

как заставить их говорить друг с другом?

1 Ответ

2 голосов
/ 08 марта 2019

Вы пытаетесь отправить переменную в качестве параметра get, но в серверной части вы ожидаете ее как переменную пути. Для этого может быть два решения:

  1. Измените контроллер Spring для принятия параметра запроса:
@GetMapping("/project")    
public Project getProject(@RequestParam int theId) {
    ...
}

Для кода AngularJS не требуется никаких модификаций.

  1. Измените запрос $http для отправки переменной в качестве переменной пути.
$http.get('${pageContext.request.contextPath}/api/project/' + theId)
    .then(function(response){
        ...
    });

В этом случае контроллер не нуждается в каких-либо модификациях.

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