Spring boot啟動返回jsp頁面
阿新 • • 發佈:2019-02-09
最近在搞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來進行啟動