Spring boot學習 (六) 之響應jsp頁面

前言

spring-boot 支持多種模版引擎包括:

  • FreeMarker
  • Groovy
  • Thymeleaf
  • Velocity
  • Jsp
    其中官方是推薦使用Thymeleaf,而Jsp官方不推薦,原因是spring-boot創建的項目在src/main/resources 下有個templates 目錄用於放模板文件,而jsp頁面是放在webapp目錄下,spirng-boot沒有這樣的目錄。但是企業用jsp用的很多,所以還是可以學習一下的。

正文

pom.xml中添加依賴
 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
     <groupId>org.apache.tomcat.embed</groupId>
     <artifactId>tomcat-embed-jasper</artifactId>
     <!--<scope>provided</scope>-->
 </dependency>
 <dependency>
     <groupId>javax.servlet</groupId>
     <artifactId>jstl</artifactId>
 </dependency>

application.properies中加入如下配置,指定jsp頁面的目錄和後綴
#配置要獲取的信息
com.mlin.hello=hello,mlin
# 頁面默認前綴目錄
spring.mvc.view.prefix=/WEB-INF/jsp/
# 響應頁面默認後綴
spring.mvc.view.suffix=.jsp
新建文件UserController.java,添加如下代碼:
@Controller
public class UserController {

    @Value("${com.mlin.hello}")
    private  String hello; //獲取配置文件的信息:mlin,hello

    @RequestMapping("/index")
    public ModelAndView index(){
        // 默認會去尋找配置文件配置的 spring.view.prefix 目錄下的頁面
        // 即/WEB-INF/jsp/index.jsp
        ModelAndView modelAndView = new ModelAndView("index");
        modelAndView.addObject("msg",this.hello);
        return modelAndView;
    }
}
src/main 下面創建 webapp/WEB-INF/jsp 目錄存放jsp頁面,新建index.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Spring Boot jsp Sample</title>
</head>
<body>
    Message: ${msg}
</body>
</html>
pom.xml文件中的jar改成war,這樣纔可以支持jsp
<packaging>war</packaging>
啓動服務,瀏覽器輸入:http://localhost:8080/index

總結

在實踐過程中發現如下問題

當引入的依賴tomcat-embed-jasper指定範圍是provide的時候,右鍵啓動類一直報404找不到頁面錯誤,不指定則運行正常。尋找資料發現前輩們的總結如下:

指定provided時:
  • 右鍵運行啓動類,訪問頁面報404錯誤
  • 使用spring-boot:run運行正常
  • 打包成jar,通過 java -jar xxxxx.jar 運行報錯
  • 打包成war,通過 java -jar xxxxx.war 運行正常
不指定provided時
  • 右鍵運行啓動類,訪問頁面正常
  • spring-boot:run運行 訪問頁面正常
  • 打包成jar,通過 java -jar xxxxx.jar 運行報錯
  • 打包成war,通過 java -jar xxxxx.war 運行正常

原創作者:夢凌小樣
作品鏈接:https://www.jianshu.com/p/891c3e401e2f【原創不易,轉載請註明出處,感謝理解】
一位愛生活,愛創作,愛分享,愛自己的90後女程序員一枚,記錄工作中的點點滴滴,一起學習,共同進步,期待能和優秀的您交上朋友

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章