Thymeleaf views not found with springboot
我正在尝试按照本教程将百里香叶添加到springboot应用程序中,但是我似乎无法使其正常工作。
教程:http://spr.com/part-2-adding-views-using-thymeleaf-and-jsp-if-you-want/
当我使用LoginController中的@RestController启动应用程序时,我能够使springboot正常工作,但是当我将@RestController更改为@Controller时,我得到了一个错误页面:
发生意外错误(类型=未找到,状态= 404)。
无可用讯息
我在控制器中设置了一个断点,并确认它正在登录LoginController中的索引方法。我觉得这与我添加Thymeleaf的方式有关,因为我还没有对应用程序做很多其他事情,但是到目前为止,我尝试的所有操作都导致了相同的错误页面。
我的build.gradle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | buildscript { repositories { maven { url"http://repo.spring.io/libs-snapshot" } mavenLocal() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'spring-boot' jar { baseName = 'GazeFest' version = '0.1.0' } repositories { mavenCentral() } sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { compile("org.springframework.boot:spring-boot-starter-web") compile("org.thymeleaf:thymeleaf-spring4:3.0.0.RELEASE") } task wrapper(type: Wrapper) { gradleVersion = '3.0' } |
我的Application.java
包装公报
1 2 3 4 5 6 7 8 9 10 11 | import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } |
我的LoginController.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package gazefest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Controller public class LoginController { @RequestMapping("/") public String index(Model model) { model.addAttribute("message","HELLO!"); return"index"; } } |
我的index.html
1 2 3 4 5 6 7 8 9 10 11 | <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> <head lang="en"> <meta charset="UTF-8" /> HELLO </head> <body> <p th:text="${message}"> </p> </body> </html> |
我的档案结构
谢谢参观!
我认为您不应该使用thymeleaf-spring4依赖项,但是您应该为Thymeleaf使用Spring引导启动器。
对于Maven:
1 2 3 4 | <dependency> <groupId>org.springframework.boot</groupId> spring-boot-starter-thymeleaf</artifactId> </dependency> |
对于Gradle:
1 | compile("org.springframework.boot:spring-boot-starter-thymeleaf") |
我建议使用Spring Initializr来设置您的项目。 这使您可以选择任何Spring启动启动器,并将其添加到Gradle / Maven描述符中,这样您就不会因选择依赖项而犯任何错误。