我正在尝试使用Spring Boot创建一个帐户控制器。我有一个位于static / login.html下的登录页面的html文件。当我不将POST请求映射到同一路径时,页面加载完全正常。
我有一个AccountController类:
@RestController
public class AccountController {
@RequestMapping(value = "/login", method = RequestMethod.POST)
public Account login(@RequestBody Map<String, Object> body) {
// code
}
}
此控制器禁用对html页面的GET请求。在尝试访问该页面时,我收到了;
There was an unexpected error (type=Method Not Allowed, status=405).
Request method 'GET' not supported
所以我的问题基本上是,如何让POST和GET请求同时工作。如果有一个更好的文件结构我可以用于静态内容,请提出建议。
答案 0 :(得分:0)
这应该有效
@RequestMapping(value = "/login", method = { RequestMethod.GET, RequestMethod.POST })
public Account login(@RequestBody Map<String, Object> body) {
// code
}
这样,控制器映射将可用于两种方法
<强>更新强>
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String serveLogin(... (if needed) ) {
// code to serve your static content
return "index.html";
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public Account login(@RequestBody Map<String, Object> body) {
// code to handle your login form POST submit
}