【spring boot】5.spring boot 創建web項目並使用jsp作前台頁面【idea新創建spring boot服務,pom完善即可啟動】


賊煩的是,使用spring boot 創建web項目,然后我再idea下創建的,but 僅僅啟動spring boot的啟動類,就算整個項目都是好着的,就算是能夠進入controller中,也不能成功訪問到jsp頁面。很尷尬!也很無語!

 

好吧,開頭一句抱怨,下面全靠編~~~

=======================================================================================================

1.idea下spring boot創建web項目

剛創建完是下面這樣

 

當然,最后創建完的使用JSP的web項目可不是這個結構的。往下看。

  

2.pom.xml添加下面

<!--web 支持-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--jsp頁面使用jstl標簽-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <!--用於編譯jsp-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
View Code

上面這三個是spring boot項目創建使用jsp頁面的web項目必須的三個依賴 

這里介紹下maven中scope依賴范圍的概念,因為后續涉及到這個會有問題。

依賴范圍就是用來控制依賴和三種classpath(編譯classpath,測試classpath、運行classpath)的關系,Maven有如下幾種依賴范圍:

  • compile:編譯依賴范圍。如果沒有指定,就會默認使用該依賴范圍。使用此依賴范圍的Maven依賴,對於編譯、測試、運行三種classpath都有效。典型的例子是spring-code,在編譯、測試和運行的時候都需要使用該依賴。
  • test: 測試依賴范圍。使用次依賴范圍的Maven依賴,只對於測試classpath有效,在編譯主代碼或者運行項目的使用時將無法使用此依賴。典型的例子是Jnuit,它只有在編譯測試代碼及運行測試的時候才需要。
  • provided:已提供依賴范圍。使用此依賴范圍的Maven依賴,對於編譯和測試classpath有效,但在運行時候無效。典型的例子是servlet-api,編譯和測試項目的時候需要該依賴,但在運行項目的時候,由於容器以及提供,就不需要Maven重復地引入一遍。

3.創建webapp目錄,並創建jsp頁面在目錄下

注意創建的目錄層級關系

如果再創建jsp頁面的時候,不能右鍵直接創建的話,可以http://www.cnblogs.com/sxdcgaq8080/p/7676294.html

 

4.application.properties配置文件的完善

注意前綴 的值是 /WEB-INF/views/  而不是 /WEB-INF/views

少一個/ 整個訪問的路徑就是不完整的。

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

因為webapp在剛剛上面創建jsp頁面的時候,已經被指定為classpath了,也就是根路徑了。

 

所以現在,這里配置了mvc的【view】視圖層前綴后綴,指定controller中尋找頁面就去/WEB-INF/views/  下面去找.jsp文件了。

 

5.寫一個跳轉頁面的controller層

 

 

6.所以,最終項目的目錄結構是這個樣子的

哦哦,這里有一個web目錄,是可以刪掉的,不過刪不刪也無所謂,沒有多大的關系

7.最后一步,啟動並且能訪問

這里不是通過啟動類去啟動,而是需要通過spring-boot:run去啟動

 

右鍵 run 或者debug都可以

然后 啟動起來之后在瀏覽器訪問

是可以訪問到的。

 

 

8.還有就是,如果把用於編譯jsp的 這個插件的scope注解,也就是使用默認的scope

        <!--用於編譯jsp-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <!--<scope>provided</scope>-->
        </dependency>

 

然后import 整個pom.xml文件之后。

再通過 啟動  啟動類的方式來啟動spring boot項目的話,也是可以訪問的到的【我把web目錄刪掉了】

 

通過啟動spring-boot:run的方式也可以訪問到。

 

 

=====================================================================================================

因為確實碰到很多小的點注意不到的地方,導致整個就是訪問不到,反正上面該羅列的都羅列出來了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM