默认情况下,Spring Boot期望视图存储在哪里?

我正在尝试使用Spring Boot" title="Spring Boot">Spring Boot重写配置繁重的香草Spring MVC项目。我使用Spring Boot

Initiaizer在IntelliJ中启动了一个全新的Spring

Boot项目,并且正在尝试基于Java的最小配置。许多教程指出,生成的默认主类就足够了,其中@SpringBootApplication包含了所有内容。我有一个示例REST

Controller可以工作并以JSON形式返回一个序列化对象,但是事实证明很难显示视图。我的结构如下,除我创建的webapps目录外,所有其他默认设置。

src

`-main

`-java

`-resources

`-static

`-templates

`-webapp

`-WEB-INF

`-home.jsp

控制器很简单。

@Controller

public class ViewMaster {

@RequestMapping("/home")

public String home() {

return "home";

}

}

没有任何配置,我想知道Spring

Boot希望将视图存储在何处以及使用什么扩展名(html?)。我也尝试将以下内容包括在内,application.properties但仍然出现404错误。在资源中四处移动WEB-

INF目录或仅html文件也无济于事。

spring.mvc.view.prefix=/WEB-INF/

spring.mvc.view.suffix=.jsp

我还尝试了在我的pom.xml中包含这些依赖关系,但没有任何效果。

<dependency>

<groupId>org.apache.tomcat.embed</groupId>

<artifactId>tomcat-embed-jasper</artifactId>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

</dependency>

我必须在这里遗漏一些令人痛苦的显而易见的东西,如果有人可以指出这一点,请多谢!

回答:

我通过反复试验找到了答案,结果很烦人。如果这个结论是错误的,我希望有人可以纠正我,但是看来Spring Boot不喜欢string WEB-

INF。我将WEB-INF目录重命名为,view并将更改application.properties为以下内容,并成功加载了视图。

spring.mvc.view.prefix=/view/

spring.mvc.view.suffix=.jsp

本练习的目的是创建一个

,基于Java的配置的工作示例,因此我继续最小化设置。然后,我发现在多个SO线程和论坛上提出的很多建议都无济于事。@JBNizet在他的评论中提供了指向Spring

Boot文档的链接,该链接列出了一个没有人提到的非常突出的观点:

。考虑到这一点,我决定尝试用ThymeLeaf模板替换JSP。

我的新工作配置消除了对这些的需要:

  • 无需添加application.propertiesspring.mvc.view.prefix+spring.mvc.view.suffix
  • 无需将包装类型从 改为
  • 无需修改主类
  • 无需为其添加pom.xml依赖项

    • org.springframework.boot / spring-boot-starter-tomcat
    • org.springframework.boot / tomcat-embed-jasper
    • javax.servlet / jstl

所以,只是默认spring引导模板和2

ThymeLeaf依赖关系与命名的意见ViewName.html摆在src/main/resources/templates

<dependency>

<groupId>org.thymeleaf</groupId>

<artifactId>thymeleaf</artifactId>

</dependency>

<dependency>

<groupId>org.thymeleaf</groupId>

<artifactId>thymeleaf-spring4</artifactId>

</dependency>

以上是 默认情况下,Spring Boot期望视图存储在哪里? 的全部内容, 来源链接: utcz.com/qa/409400.html

回到顶部