我正在尝试按照本教程将thymeleaf添加到springboot应用程序,但我似乎无法让它工作。 教程:http://spr.com/part-2-adding-views-using-thymeleaf-and-jsp-if-you-want/
当我在LoginController中使用@RestController启动应用程序时,我能够使springboot正常工作但是当我将@RestController更改为@Controller时我得到一个错误页面说:
出现意外错误(type = Not Found,status = 404)。 没有可用的消息
我在控制器中设置了一个断点,并确认它正在使用LoginController中的索引方法。我觉得这与我添加Thymeleaf的方式有关,因为我还没有为应用程序做过其他事情,但到目前为止我尝试的所有内容都会产生相同的错误页面。
我的build.gradle
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
包装gazefest;
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
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
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head lang="en">
<meta charset="UTF-8" />
<title>HELLO</title>
</head>
<body>
<p th:text="${message}"></p>
</body>
</html>
谢谢你看看!
答案 0 :(得分:2)
我认为你不应该使用 thymeleaf-spring4 依赖,但是你应该使用Thymeleaf的Spring启动启动器。
对于Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
对于Gradle:
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
我建议使用Spring Initializr来设置您的项目。这允许您选择任何Spring启动启动器并将其添加到您的Gradle / Maven描述符中,这样您就不会通过选择依赖项来犯错误。