1. 程式人生 > >Spring boot啟動返回jsp頁面

Spring boot啟動返回jsp頁面

最近在搞spring boot,糾結了一段時間,各種方法都嘗試過了,每次執行的時候訪問jsp頁面總是返回spring boot預設的404錯誤頁。下面將排查問題的大致思路說一下。雖然spring boot官方不推薦使用jsp檔案,使用Template模板引擎,但既然用了還是想搞一下。

1.確認pom.xml檔案中是否添加了如下依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId
>
</dependency> <!-- 使用Jasper引擎解析JSP --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>

jasper可以解析jsp檔案。

2.確保配置檔案對映的路徑和格式是否正確

(1)application.properties中jsp

#view
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

PS:貌似spring boot的jar包版本不同格式不同,版本低的格式為

#view
spring.view.prefix:/WEB-INF/view/
spring.view.suffix:.jsp

我的版本是1.4.1.RELEASE的,如下:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>
spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> </parent>

(2)application.yml

spring:         
    # HTTP ENCODING  
    http:  
        encoding.charset: UTF-8  
        encoding.enable: true  
        encoding.force: true  

    datasource:  
        validation-query: SELECT 1  
        test-on-borrow: true  

    mvc:  
        view:  
            prefix: /WEB-INF/view/  
            suffix: .jsp   

我的檔案的目錄結構:

這裡寫圖片描述

3.檢視controller中返回頁面的方法是否正確

//登入
@RequestMapping(value="login")
public String login() {
    return "login";
}

5.以上個點都是最基本的,這一點我想著重說一下,一般人不太注意。以上的個點我反覆對照了無數次,仍然是返回錯誤,最後才發現spring boot返回jsp頁面時不能用普通的main方法啟動

這裡寫圖片描述

而是需要通過springboot:run來進行啟動

這裡寫圖片描述