[英]How use PUT method in Springboot Restcontroller?
正在使用 Spring boot 開發應用程序。我嘗試使用所有表示動詞,如 GET、POST、DELETE,它們也都工作正常。 通過使用 PUT 方法,它在 spring boot 中不支持。 我是否需要添加任何新配置。
Put 方法僅適用於沒有任何參數的請求。 如果我添加任何查詢參數或表單數據,它就不起作用。 請任何專業人士幫助我解決這個問題。
@RequestMapping("/student/info")
@RequestMapping(method = RequestMethod.PUT)
public @ResponseBody String updateStudent(@RequestParam(value = "stdName")String stdName){
LOG.info(stdName);
return "ok";
}
不支持請求方法“PUT”
此代碼將正常工作。 您必須在類級別或功能級別指定請求映射。
@RequestMapping(value = "/student/info", method = RequestMethod.PUT)
public @ResponseBody String updateStudent(@RequestBody Student student){
LOG.info(student.toString());
return "ok";
}
您是否嘗試過以下請求映射:
@RequestMapping(value = "/student/info", method = RequestMethod.PUT)
不需要將 URI 的值和請求方法分開。
從 Spring 4.3 開始,您可以使用@PutMapping("url")
: https : @PutMapping("url")
在這種情況下,它將是:
@PutMapping("/student/info")
public @ResponseBody String updateStudent(@RequestParam(value = "stdName")String stdName){
LOG.info(stdName);
return "ok";
}
我在 spring boot 1.5.* 中遇到了同樣的問題,我通過以下方式修復了它:
@RequestMapping(value = "/nick", method = RequestMethod.PUT)
public Result updateNick(String nick) {
return resultOk();
}
添加這個豆
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
return new TomcatEmbeddedServletContainerFactory(){
@Override
protected void customizeConnector(Connector connector) {
super.customizeConnector(connector);
connector.setParseBodyMethods("POST,PUT,DELETE");
}
};
}
也可以看看
https://stackoverflow.com/a/25383378/4639921
https://stackoverflow.com/a/47300174/4639921
您可以在課程之前添加 @RestController 注釋。
@RestController
@RequestMapping(value = "/v1/range")
public class RangeRestController {
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.