java - 重定向不适用于 Spring Boot 应用程序中的 Thymeleaf

标签 java spring-mvc redirect thymeleaf

我正在尝试在 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。

project

最佳答案

当你这样做

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/

相关文章:

java - 循环遍历 txt 文件,查找某个范围内的数字及其平均值

java - 使用 == 运算符比较包装类和基元时类型转换背后的逻辑是什么?

spring-mvc - Spring 与 <form :form commandName ="xy" 的注释关系

.htaccess - Htaccess 将所有文件从一个域中的子目录重定向到另一个域

JavaMail API 连接 Mercury 邮件服务器错误

spring - Java应用程序构建失败,其中Mysql url指向Docker容器

java - Spring 对缺少参数的 MVC 方法的建议

php - 使用查询参数进行 301 重定向

java - 如何使用 jSTL 从 url 获取一些值

java - 同时读取2个文件,没有更多性能