我正在尝试使用spring boot编写一个简单的Web MVC应用程序。但是,当我在IntelliJ中运行应用程序时,我不断收到默认的whitelabel错误页面。
我的主要课程如下:
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}
public static void main(String[] args){
SpringApplication.run(MyApplication.class, args);
}
}
控制器如下所示:
@Controller
public class MainController {
@RequestMapping("/")
public String welcome(Model model) {
model.addAttribute("message", "test");
return "welcome";
}
}
这是我的build.gradle文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.0.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
providedCompile 'org.springframework.boot:spring-boot-starter-web'
providedCompile 'org.apache.tomcat.embed:tomcat-embed-jasper:9.0.6'
compile 'javax.servlet:jstl:1.2'
testCompile 'junit:junit'
}
这是我的application.properites文件:
spring.mvc.view.prefix= /WEB-INF/jsp/
spring.mvc.view.suffix= .jsp
我的jsp文件在这里:src / main / webapp / WEB-INF / jsp / welcome.jsp
看起来像这样:
<!DOCTYPE html>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
<div class="starter-template">
<h1>Message: ${message}</h1>
</div>
</div>
<script type="text/javascript" src="webjars/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>
&#13;
我想知道我在这里失踪了什么?我的gradle文件中是否需要添加/更改内容?我错过了某种配置bean吗?当我尝试注释@RestController时,我没有得到whitelabel错误页面,但我没有得到jsp文件。相反,我只是得到了#34; welcome&#34;,由我的MainController中的方法返回。据我了解,@ RestController不允许查看,但@Controller确实如此。但是,即使我使用@Controller,我也无法呈现jsp。
答案 0 :(得分:0)
我认为缺少starter-tomcat可能会有问题。 将此添加到您的gradle中。
providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')