我有一个非常轻松的问题,我已经使用了Spring mvc + jsp,但现在我无法理解控制器为什么不返回html文件。现在我将Spring Boot与Web模块一起使用。
@Controller
@RequestMapping(value = "/test")
public class Main {
private static final Logger logger = Logger
.getLogger(Main.class.getName());
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String index() {
return "templates/hello.html";
}
我的html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HelloWorld</title>
</head>
<body>
HELLO
</body>
</html>
我总是得到错误:
Whitelabel错误页面 此应用程序没有/ error的显式映射,因此您将此视为回退。 2月17日星期六20:22:24 EET 2018年 出现意外错误(type = Not Found,status = 404)。 没有可用的消息
构建文件:
buildscript {
ext {
springBootVersion = '1.5.10.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
group = 'mikhailov.diplom.ae'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-rest')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
// https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf
compile group: 'org.thymeleaf', name: 'thymeleaf', version: '3.0.9.RELEASE'
}
答案 0 :(得分:-1)
从您的构建文件开始,您使用的是thymeleaf:
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-rest')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
// https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf
compile group: 'org.thymeleaf', name: 'thymeleaf', version: '3.0.9.RELEASE'
}
这种方法的“问题”是你必须明确定义百万美元的templateResolver bean和templateEngine。
另一方面,spring-boot附带一个开箱即用的解决方案,即
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
具有传统配置的所有内容。在这种情况下,您不需要定义templeteResolver或templateEngine(除非您真的不需要),只需返回具有正确名称的String即可开始使用模板。
使用spring依赖项,只需从返回的字符串中删除“templates”前缀和.html ext,它将按预期工作:
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String index() {
return "hello";
}