一、加入依賴
Spring Boot 預設不支援jsp。
需要另外引用jar包來支援
我們需要 tomcat-embed-jasper 依賴項,
以允許應用程序編譯和呈現 JSP 頁面。
如果也會用到jstl library,也要加入依賴
圖1
二、設定 application.properties
配置兩個屬性來讓 Spring 才知道這些 JSP 文件的位置。
預設:${project.basedir}/main/webapp/
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
prefix 前段:/WEB-INF/jsp/
suffix 後段:.jsp
組合為 ${project.basedir}/main/webapp/WEB-INF/jsp/{可變動的路徑及檔名}.jsp
{可變動的路徑及檔名}配合Controller 的 return
圖2
三、jap 資料夾建立
圖3 ${project.basedir}/main/webapp/WEB-INF/jsp/
四、建立jsp檔
本文建新test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Spring Boot jsp</title>
</head>
<body>
<h6>Spring Boot jsp</h6>
</body>
</html>
圖4
五、建立Controller
測試用的,輸入jsp 檔名,轉到該jsp
jspPageName ,可為檔名。
如果在jsp資料夾下還有分層,也需要資料夾名稱。第七項做範例測試
package com.example.springbootjspdemo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @Controller public class JspController { @GetMapping("/{jspPageName}") public String jspPage(@PathVariable String jspPageName){ return jspPageName; } }
註:@Controller 、@GetMapping 、@PathVariable 另文說明。
六、測試
圖6
七、測試jsp資料下,多層資料夾
jsp資料下,新增books資料夾,新增books.jsp
圖7
八、新增Controller 內容
在JspController加入
@GetMapping("/books/{jspPageName}") public String jspbooksPage(@PathVariable String jspPageName){ System.out.println(jspPageName); return "books/"+jspPageName; }
在return 我們加入books/,為books資料夾,而jspPageName 為books下的jsp檔名
圖8
九、測試
圖9
相關文章:
用LINE傳送分享
其它文章
沒有留言:
張貼留言