springboot內(nèi)部對(duì)jsp的支持并不是特別理想,而springboot推薦的視圖是Thymeleaf,對(duì)于java開發(fā)人員來(lái)說還是大多數(shù)人員喜歡使用jsp,接下來(lái)我們來(lái)講解下springboot是如何支持jsp的。
本章目標(biāo)
整合springboot web項(xiàng)目支持jsp作為視圖輸出。
免費(fèi)專題文章匯總
恒宇少年在博客整理出來(lái)了SpringBoot、ApiBoot、SpringCloud的文章匯總【SpringBoot基礎(chǔ)教程專題】,【SpringCloud基礎(chǔ)教程專題】,【ApiBoot組件使用專題】
開始構(gòu)建項(xiàng)目
我們使用IntelliJ IDEA 工具來(lái)構(gòu)建項(xiàng)目,首先我們需要?jiǎng)?chuàng)建一個(gè)springboot項(xiàng)目,如下圖1所示.
點(diǎn)擊Next后輸入一些項(xiàng)目的基本參數(shù)(包名,工程名,打包形式,maven形式構(gòu)建等),如下圖2所示:
點(diǎn)擊Next后選擇我們預(yù)先加入到工程的springboot內(nèi)置的jar包組件,我們這里選擇一個(gè)web組件。如下圖3所示:
點(diǎn)擊Next輸入項(xiàng)目名稱后店家Finish既可以完成了項(xiàng)目的構(gòu)建。新構(gòu)建的項(xiàng)目目錄結(jié)構(gòu)如下圖4所示:
可以看到上圖中比我們lessonOne項(xiàng)目中多出來(lái)了一個(gè)類文件,ServletInitlalizer,打開該類我們不難發(fā)現(xiàn)它繼承了SpringBootServletInitializer這個(gè)父類,而SpringBootServletInitializer這個(gè)類是springboot提供的web程序初始化的入口,當(dāng)我們使用外部容器(后期文章講解使用外部tomcat如何運(yùn)行項(xiàng)目)運(yùn)行項(xiàng)目時(shí)會(huì)自動(dòng)加載并且裝配。
實(shí)現(xiàn)了SpringBootServletInitializer的子類需要重寫一個(gè)configure方法,方法內(nèi)自動(dòng)根據(jù)LessontwoApplication.class的類型創(chuàng)建一個(gè)SpringApplicationBuilder交付給springboot框架來(lái)完成初始化運(yùn)行配置。
配置springboot支持jsp
我們打開pom.xml(maven配置文件)可以看到我們之前構(gòu)建項(xiàng)目時(shí)已經(jīng)添加了web模塊,而springboot給我們自動(dòng)添加了spring-boot-starter-tomcat配置引入。springboot內(nèi)部集成了tomcat組件,這里我們就不需要重復(fù)引入tomcat組件。
JSP maven
我們先來(lái)添加jsp的maven支持,如下圖4所示:
Servlet maven
我們還需要引入jsp對(duì)servlet容器的支持,如下圖5所示:
JSTL maven
除了上面的jsp,servlet支持以外,如果你還需要在jsp頁(yè)面使用jstl標(biāo)簽來(lái)處理界面邏輯,那么需要引入jstl maven,如下圖6所示:
初嘗試運(yùn)行項(xiàng)目
上面配置就是我們本章需要的全部配置,那么我們先來(lái)嘗試運(yùn)行下項(xiàng)目是否已經(jīng)可以正常運(yùn)行。這里項(xiàng)目運(yùn)行也可以使用IntelliJ IDEA工具提供的組件來(lái)完成,如下圖7所示,:
(注意:如果你已經(jīng)開啟了另外一個(gè)spring boot項(xiàng)目請(qǐng)先關(guān)閉,因?yàn)閟pringboot內(nèi)置的端口號(hào)都是8080這樣會(huì)引起沖突)
點(diǎn)擊綠色三角號(hào)即可開始運(yùn)行項(xiàng)目,我們先來(lái)嘗試下點(diǎn)擊后看看控制臺(tái)輸入的日志信息。可以看到項(xiàng)目已經(jīng)正常運(yùn)行了,右上角的綠色三角號(hào)也變成了重啟的按鈕,如下圖8所示:
項(xiàng)目運(yùn)行如圖9所示:
可以看到項(xiàng)目已經(jīng)正常運(yùn)行,但是我們現(xiàn)在還沒有配置,創(chuàng)建JSP文件,我們接下來(lái)開始配置,創(chuàng)建JSP。
配置視圖
基本配置
如果是使用過eclipse工具的人肯定知道jsp文件之前是在/webapp/WEB-INF/jsp目錄下,那么我們也沿用eclipse的風(fēng)格。
1. 在main目錄下創(chuàng)建webapp文件夾
2. 在webapp下創(chuàng)建jsp文件夾如下圖10所示:
3. 修改application.properties文件讓springmvc支持視圖的跳轉(zhuǎn)目錄指向?yàn)?main/webapp/jsp,配置如下圖11所示:
創(chuàng)建index.jsp
我們?cè)趙ebapps/jsp目錄下創(chuàng)建一個(gè)index.jsp用于測(cè)試我們的配置是否已經(jīng)支持了jsp,新建jsp文件如下圖12所示:
創(chuàng)建IndexController
上面工作我們已經(jīng)完成了jsp的所有配置,那么接下來(lái)我們需要配置springmvc的控制器,我們新建indexController如下圖13所示:
可以看到上圖我們?cè)贗ndexController配置文件內(nèi)添加了index()方法配置了@RequestMapping注解來(lái)描述index()方法是一個(gè)可以被springmvc管理的請(qǐng)求視圖。我們的index()方法返回值這里是"index"。
為什么我們返回"index",還記得上述步驟中配置的application.properties文件的springmvc請(qǐng)求前綴以及后綴,那么當(dāng)我們?cè)L問/index時(shí)springmvc就會(huì)去找/webapp/WEB-INF/jsp/index.jsp文件。
重啟項(xiàng)目
重啟項(xiàng)目我們嘗試訪問127.0.0.1:8080/index,可以看到如下圖14的效果,證明已經(jīng)完成了springboot與jsp的整合:
總結(jié)
上述便是我們本章的全部?jī)?nèi)容,本章主要是講解了springboot集成jsp作為渲染視圖,結(jié)合springmvc來(lái)轉(zhuǎn)發(fā)請(qǐng)求。
本章內(nèi)容已經(jīng)上傳到碼云:
SpringBoot配套源碼地址:https://gitee.com/hengboy/spring-boot-chapter
SpringCloud配套源碼地址:https://gitee.com/hengboy/spring-cloud-chapter
SpringBoot相關(guān)系列文章請(qǐng)?jiān)L問:目錄:SpringBoot學(xué)習(xí)目錄
QueryDSL相關(guān)系列文章請(qǐng)?jiān)L問:QueryDSL通用查詢框架學(xué)習(xí)目錄
SpringDataJPA相關(guān)系列文章請(qǐng)?jiān)L問:目錄:SpringDataJPA學(xué)習(xí)目錄
SpringBoot相關(guān)文章請(qǐng)?jiān)L問:目錄:SpringBoot學(xué)習(xí)目錄,感謝閱讀!
歡迎微信掃碼加入知識(shí)星球,恒宇少年帶你走以后的技術(shù)道路?。?!
知識(shí)星球 - 恒宇少年