我正在尝试在 Spring Boot 上创建一个简单的应用程序: Controller :
@Controller
public class RootController {
@RequestMapping ("/")
public String root() {
return "login";
}
@RequestMapping(path = "/joinChart", method = RequestMethod.GET)
public String joinChart(@RequestParam (defaultValue = "") String username) {
return "redirect:chat?username=" + username;
}
}
root 方法运行良好。但是当我尝试在登录页面上重定向时,它返回 404-ERROR。
最佳答案
当你这样做
return "login";
在您的 root()
处理程序方法中,您实际上只是返回一个 View 名称(通常由 JstlView
处理,但这里由 ThymeleafView
处理,因为您使用的是 Thymeleaf),但是 Spring MVC 的 Web 基础设施(以及您的 Servlet Web 容器)将尝试查找并呈现。
当你这样做
return "redirect:chat?username=" + username;
在您的 joinChart
处理程序方法中,您实际上返回了 redirect view name服务器将呈现为带有 Location
header 的 303 响应。客户端将被指示向 /chat
发送新请求。如果您没有相应的请求映射,显然服务器将返回 404。
您需要为/chat
添加请求映射
@RequestMapping ("/chat")
public String chat() {
return "chat";
}
关于java - 重定向不适用于 Spring Boot 应用程序中的 Thymeleaf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61108827/