第二章:SpringBoot與JSP間不可描述的祕密

springboot內部對jsp的支持並非特別理想,而springboot推薦的視圖是Thymeleaf,對於java開發人員來講仍是大多數人員喜歡使用jsp,接下來咱們來說解下springboot是如何支持jsp的。java

本章目標

整合springboot web項目支持jsp做爲視圖輸出。git

開始構建項目

咱們使用IntelliJ IDEA 工具來構建項目,首先咱們須要建立一個springboot項目,以下圖1所示.web


圖1

點擊Next後輸入一些項目的基本參數(包名,工程名,打包形式,maven形式構建等),以下圖2所示:spring


圖2

點擊Next後選擇咱們預先加入到工程的springboot內置的jar包組件,咱們這裏選擇一個web組件。以下圖3所示:tomcat


圖3

點擊Next輸入項目名稱後店家Finish既能夠完成了項目的構建。新構建的項目目錄結構以下圖4所示:springboot


圖3

能夠看到上圖中比咱們lessonOne項目中多出來了一個類文件,ServletInitlalizer,打開該類咱們不難發現它繼承了SpringBootServletInitializer這個父類,而SpringBootServletInitializer這個類是springboot提供的web程序初始化的入口,當咱們使用外部容器(後期文章講解使用外部tomcat如何運行項目)運行項目時會自動加載而且裝配。
實現了SpringBootServletInitializer的子類須要重寫一個configure方法,方法內自動根據LessontwoApplication.class的類型建立一個SpringApplicationBuilder交付給springboot框架來完成初始化運行配置。mvc

配置springboot支持jsp

咱們打開pom.xml(maven配置文件)能夠看到咱們以前構建項目時已經添加了web模塊,而springboot給咱們自動添加了spring-boot-starter-tomcat配置引入。springboot內部集成了tomcat組件,這裏咱們就不須要重複引入tomcat組件。app

JSP maven

咱們先來添加jsp的maven支持,以下圖4所示:框架


圖4

Servlet maven

咱們還須要引入jsp對servlet容器的支持,以下圖5所示:less


圖5

JSTL maven

除了上面的jsp,servlet支持之外,若是你還須要在jsp頁面使用jstl標籤來處理界面邏輯,那麼須要引入jstl maven,以下圖6所示:


圖6

初嘗試運行項目

上面配置就是咱們本章須要的所有配置,那麼咱們先來嘗試運行下項目是否已經能夠正常運行。這裏項目運行也可使用IntelliJ IDEA工具提供的組件來完成,以下圖7所示,:
(注意:若是你已經開啓了另一個spring boot項目請先關閉,由於springboot內置的端口號都是8080這樣會引發衝突)


圖7

點擊綠色三角號便可開始運行項目,咱們先來嘗試下點擊後看看控制檯輸入的日誌信息。能夠看到項目已經正常運行了,右上角的綠色三角號也變成了重啓的按鈕,以下圖8所示:


圖8

項目運行如圖9所示:


圖9

能夠看到項目已經正常運行,可是咱們如今尚未配置,建立JSP文件,咱們接下來開始配置,建立JSP。

配置視圖

基本配置

若是是使用過eclipse工具的人確定知道jsp文件以前是在/webapp/WEB-INF/jsp目錄下,那麼咱們也沿用eclipse的風格。
1. 在main目錄下建立webapp文件夾
2. 在webapp下建立jsp文件夾以下圖10所示:

3. 修改application.properties文件讓springmvc支持視圖的跳轉目錄指向爲/main/webapp/jsp,配置以下圖11所示:


圖11

圖11

建立index.jsp

咱們在webapps/jsp目錄下建立一個index.jsp用於測試咱們的配置是否已經支持了jsp,新建jsp文件以下圖12所示:


圖12

建立IndexController

上面工做咱們已經完成了jsp的全部配置,那麼接下來咱們須要配置springmvc的控制器,咱們新建indexController以下圖13所示:


圖13

能夠看到上圖咱們在IndexController配置文件內添加了index()方法配置了@RequestMapping註解來描述index()方法是一個能夠被springmvc管理的請求視圖。咱們的index()方法返回值這裏是"index"。
爲何咱們返回"index",還記得上述步驟中配置的application.properties文件的springmvc請求前綴以及後綴,那麼當咱們訪問/index時springmvc就會去找/webapp/WEB-INF/jsp/index.jsp文件。

重啓項目

重啓項目咱們嘗試訪問127.0.0.1:8080/index,能夠看到以下圖14的效果,證實已經完成了springboot與jsp的整合:


圖14

總結

上述即是咱們本章的所有內容,本章主要是講解了springboot集成jsp做爲渲染視圖,結合springmvc來轉發請求。

本章內容已經上傳到碼雲:

SpringBoot配套源碼地址:gitee.com/hengboy/spr…

SpringCloud配套源碼地址:gitee.com/hengboy/spr…

SpringBoot相關係列文章請訪問:目錄:SpringBoot學習目錄

QueryDSL相關係列文章請訪問:QueryDSL通用查詢框架學習目錄

SpringDataJPA相關係列文章請訪問:目錄:SpringDataJPA學習目錄

SpringBoot相關文章請訪問:目錄:SpringBoot學習目錄,感謝閱讀!

歡迎加入QQ技術交流羣,共同進步。


QQ技術交流羣
相關文章
相關標籤/搜索