JSP文件未在浏览器中加载 - whitelabel错误页面

时间:2018-04-07 22:33:02

标签: java jsp spring-mvc spring-boot

我正在尝试使用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;
&#13;
&#13;

我想知道我在这里失踪了什么?我的gradle文件中是否需要添加/更改内容?我错过了某种配置bean吗?当我尝试注释@RestController时,我没有得到whitelabel错误页面,但我没有得到jsp文件。相反,我只是得到了#34; welcome&#34;,由我的MainController中的方法返回。据我了解,@ RestController不允许查看,但@Controller确实如此。但是,即使我使用@Controller,我也无法呈现jsp。

1 个答案:

答案 0 :(得分:0)

我认为缺少starter-tomcat可能会有问题。 将此添加到您的gradle中。

providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')