【发布时间】:2021-03-30 05:12:31
【问题描述】:
使用spring boot starter 2.4.1 version.
resources 文件夹具有以下结构。正如所见,hello.jsp 位于模板文件夹中。这些都包含在 application.properties 中:
spring.mvc.view.prefix=/templates/
spring.mvc.view.suffix=.jsp
还有一个简单的控制器:
@Controller
public class HelloController {
@GetMapping("/hello")
public String index(){
return "hello";
}
}
但是得到 404。
控制器方法肯定进入了。
尝试了following answer 中的建议,尝试使用 webapp,但没有帮助:/WEB-INF 没有在目标内创建根本,看来 maven 忽略了 webapp 和 WEB-INF 文件夹。
【问题讨论】:
-
你怎么知道'控制器方法肯定进入'?
-
调试、日志记录。
-
文件是从
classpath:/templates而不是templates加载的。这和 JSP 仅适用于 WAR 文件而不是 JAR 文件,并且受到限制。 -
@M.Deinum 你是对的。这就是 spring-boot 为 thymeleaf 设置的内容:docs.spring.io/spring-boot/docs/1.3.0.M1/reference/html/…。但是当我在我的属性文件中设置
classpath:/templates时(不添加 thymleafe 依赖项)它不起作用。所以我发现的唯一(而且我确信不是有效的)解决方案是将 thymleaf 依赖添加到 pom 中。
标签: java spring spring-boot maven thymeleaf