如何在RESTful Spring MVC控制器中正确重定向

时间:2014-04-17 11:16:26

标签: java spring spring-mvc

当我尝试将PUT请求发送到我的控制器的处理程序时,一切正常

@RequestMapping(method = RequestMethod.PUT,
                consumes = "application/json",
                headers = "content-type=application/json")
public String updateCompany(@RequestBody Company company) {
    companyRepository.updateCompany(company);
    return "redirect:/api/company/" + company.getId();
}

但是当它重定向到另一个处理程序

@RequestMapping(value = "/{id}", method = GET,
                produces = "application/json")
public @ResponseBody Company getCompany(@PathVariable("id") Integer id) {
    Company c = companyRepository.getCompany(id);
    return new CompanyToJsonWrapper(c);
}

我收到HTTP Status 405 - Request method 'PUT' not supported错误。任何想法如何解决它?

1 个答案:

答案 0 :(得分:2)

我不认为你想这样做。它没有意义。为什么要提供新信息然后重定向到GET?您有什么意图,在公司更新后返回公司?如果是这样,为什么不从您的PUT返回公司?否则,让您的客户端对GET进行第二次REST调用,而不是从Controller重定向。