2015-10-06 78 views
0

角控制器功能Angularjs,春天引导PUT不带弹簧的安全

$scope.updatePatient = function() { 
      var patient = new patientUpdateService({id:"15", name:"m",lastname:"s"}); 
      patient.$update(); 
} 

角服务

.factory("patientUpdateService", function ($resource) { 
    return $resource("/updatepatient", {id: "@id"}, { 
     update: { 
      method: 'PUT' 
     } 
    }); 
}) 

春季启动控制器

@RequestMapping(value="/updatepatient/{id}", method=RequestMethod.PUT) 
     @ResponseBody 
     public Patients update(@PathVariable("id") int id, @RequestBody @Valid Patients patient) { 
     return patientrep.save(patient); 

} 

支持我使用使得简单的CRUD操作应用系统angularjs和springboot,但我得到以下错误:

在角:PUT http://localhost:8080/updatepatient?id=15 405(不允许的方法)

在Tomcat中

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

我使用CRUDRepository;获取,POST,DELETE正常工作。

+3

读取错误消息。 Angular将请求发送到'updatepatient?id = 15'。但是你的弹簧控制器被映射到'/ updatepatient/15'。 –

+0

因此,在春天控制器,我应该把什么请求映射,我试图value =“/ updatepatient?id = {id}”,但它不工作 –

+0

现在感谢它的工作,在角度控制器我更改/ updatepatient/:ID” –

回答

0

角被发送查询参数,而不是pathvariables,映射查询参数,你必须使用@RequestParam注释,这里有一个例子

@RequestMapping(value="/group/", method=RequestMethod.GET) 
    @ResponseBody 
    public MetaListDto<UserDto> findUsersForGroup(@RequestParam(value="id", required=false) Long groupId,@RequestParam(value="offset", required=false) Integer offset,@RequestParam(value="limit", required=false) Integer limit) { 

希望它可以帮助