gpt4 book ai didi

java - Thymeleaf + 静态资源 + @ResponseBody

转载 作者:行者123 更新时间:2023-12-02 10:53:28 27 4
gpt4 key购买 nike

在 Spring Boot 中,我有最简单的 Controller ,返回我的 View 名称:

@Controller
public class HelloController {

@RequestMapping("/hello")
public String hello() {
return "helloworld.html";
}
}

我的helloworld.html文件放置在resources/static目录中:

<html>
<body>
Hello world!
</body>
</html>

它工作得很好 - 输入 localhost:8080/hello 打印“Hello world!”在浏览器中。

然后,我将 Thymeleaf 依赖项添加到 pom.xml,重新运行应用程序,并在浏览器中输入相同的地址时收到 TemplateInputException。我想这很好,因为现在默认在 resources/templates 目录中搜索资源。

我觉得奇怪的是,当我向 Controller 方法添加 @ReponseBody 注释时:

@Controller
public class HelloController {

@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "helloworld.html";
}
}

一切恢复正常,我收到“Hello world!”在浏览器中。但据我所知,@ResponseBody注释是将返回值作为响应的主体。那么为什么会奇迹般地再次找到 View 文件呢?

最佳答案

我测试了你的代码,但我没有得到“Hello World”作为将 thymeleaf 和 html 放置在静态下的响应。但我打印了字符串

带有注释的@ResponseBody的“helloworld.html”

因为您的 Controller 方法返回一个字符串,在您的情况下是误导性的“helloworld.html”

关于java - Thymeleaf + 静态资源 + @ResponseBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51979184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com