如何将angularjs $ http.get与spring的@GetMapping连接

时间:2019-03-07 21:19:19

标签: angularjs spring

    $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 个答案:

答案 0 :(得分:2)

您试图将变量作为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){
        ...
    });

在这种情况下,控制器不需要任何修改。