关于gradle:Spring Boot找不到Thymeleaf视图

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>

我的档案结构
fileStructure

谢谢参观!


我认为您不应该使用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描述符中,这样您就不会因选择依赖项而犯任何错误。