请求方法' PUT'不支持

时间:2015-04-19 12:41:08

标签: javascript angularjs spring-boot spring-data-rest

我正在使用springboot angularsjs并且很安静。

我的休息控制器

@RequestMapping(value="/updatestructure/{ch}",method = RequestMethod.PUT)
public @ResponseBody Structurenotification updateStructure(@PathVariable(value="ch") StructureNotificationDto ch) {
    return StructureNotif.update(ch);
}

按钮

$scope.addstructure = function() {
      $http.put('/structure/updatestructure/', $scope.element);
};

但是我遇到了这个问题:

  

o.s.web.servlet.PageNotFound:不支持请求方法'PUT'

1 个答案:

答案 0 :(得分:5)

您已将{ch}变量定义为PathVariable,并将其作为请求正文发送。您映射接受的网址类似于/structure/updatestructure/abc/structure/updatestructure/efg,而值abcefg将作为字符串传递。在这种情况下,您的映射应该如下所示。

@RequestMapping(value="/updatestructure/{ch}",method = RequestMethod.PUT)
public @ResponseBody Structurenotification updateStructure(@PathVariable String ch) {    
}

但是,你是真的会发送一个JSON作为请求体(假设从你的角$http.put(url,data))。 您的映射应如下所示:

@RequestMapping(value="/updatestructure/",method = RequestMethod.PUT)
public @ResponseBody Structurenotification updateStructure(@RequestBody StructureNotificationDto ch) {
    return StructureNotif.update(ch);
}