springboot內部對jsp的支持並不是特別理想,而springboot推薦的視圖是Thymeleaf,對於java開發人員來說還是大多數人員喜歡使用jsp
碼雲地址:https://gitee.com/yaohuiqin/SpringBootDemo
在第二章的基礎上進行修改:
1、maven添加
<!--配置springboot支持jsp 添加tomcat支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!--配置springboot支持jsp 添加jsp支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--配置springboot支持jsp jsp對servlet容器的支持 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!--在jsp頁面使用jstl標簽來處理界面邏輯,那么需要引入jstl maven-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
maven刪除
<!--配置springboot支持web 加載html文件(thymeleaf模板引擎)-->
<!--
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
-->
2、新建webapp文件夾 > WEB-INF 文件夾 > jsp 文件夾 > indexjsp.jsp
建完你會發現 webapp文件夾下缺少藍點標識,修改方法如下圖


3、在application.properties 文件中添加屬性:
spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp
4、在根目錄下新建類ServletInitializer.java :
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(LessonOneApplication.class);
}
}
它繼承了SpringBootServletInitializer這個父類,而SpringBootServletInitializer這個類是springboot提供的web程序初始化的入口,當我們使用外部容器(后期文章講解使用外部tomcat如何運行項目)運行項目時會自動加載並且裝配。 實現了SpringBootServletInitializer的子類需要重寫一個configure方法,方法內自動根據LessonOneApplication.class的類型創建一個SpringApplicationBuilder交付給springboot框架來完成初始化運行配置。
5、新建 controller對象:
@Controller
public class IndexJspController {
@RequestMapping(value = "/indexJsp",method = RequestMethod.GET)
public String index(){
return "indexjsp";
}
}
6、運行項目即可。
