springboot

时间:2016-08-28 23:27:35

标签: gradle spring-boot thymeleaf

我正在尝试按照本教程将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>

我的文件结构 fileStructure

谢谢你看看!

1 个答案:

答案 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描述符中,这样您就不会通过选择依赖项来犯错误。