天天看點

SpringBoot 使用jsp的大坑徹底解決404錯誤

最近把原來的ssm項目遷移為springboot.,參考demo,添加jsp.你會發現煩人的404。

這個問題困擾了我兩天。

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
      <scope>provided</scope>
    </dependency>
           

添加上述的核心配置,檢查沒問題, 然後你使用springboot Main方法類啟動。

恭喜你:收獲404錯誤。

檢查我們的jsp目錄,感覺沒問問題,

src/main/webapp/WEB-INF/jsp/detail.jsp
           
SpringBoot 使用jsp的大坑徹底解決404錯誤

檢查application. yml 配置

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

感覺沒問題啊,然後各種查

  • 解決方案一:
  • idea點選右邊的maven 插件、點選springboot:run
  • SpringBoot 使用jsp的大坑徹底解決404錯誤
  • 如果正常運作,證明你的配置沒有問題,main 方法運作失敗是idea和tomcat的問題。main方法不能自動拷貝tomcat-embed-jasper .jair 包。具體可以參考
  • main方法運作 run 運作
  • 解決方案二:
  • 有了思路,檢視main方法運作資訊,發現配置的tomcat為9.0
2020-12-09 10:02:57.686  INFO 26864 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8180 (http)
2020-12-09 10:02:57.695  INFO 26864 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-12-09 10:02:57.695  INFO 26864 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.39]
           

然後轉戰stackOverFLOW.

SpringBoot 使用jsp的大坑徹底解決404錯誤

更改原來的jsp路徑,放到

src/main/resources/META-INF/resources/WEB-INF/jsp/detail.jsp
           

然後就可以了, ,核心問題還應該還是tomcat的 webAPP目錄問題。具體參考原貼吧。

《Run Spring-boot’s main using IDE》

留待其他大佬,解決核心問題,問什麼一定要放在這個目錄下。