JSP (貌似Spring Boot官方不推薦,建立的項目會在src/main/resources 下有個templates 目錄,這裡就是讓我們放模版檔案的,然後并沒有生成諸如 SpringMVC 中的webapp目錄)
如果需要使用JSP怎麼辦呢?
最需注意的如下這個依賴,少了這一個不能使用jsp
(可以不指定版本)
1.在pom.xml中引入tomcat-embed-jasper依賴
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
2建立目錄webapp/WEB-INF/jsp來存放jsp頁面
注意webapp和java是同級目錄,都是main下的
建立個jsp頁面名叫helloJsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>我是标題</title>
</head>
<body>
helloJsp
<hr>
${hello}
</body>
</html>
3.application.properties檔案中配置jsp通路路徑
# 頁面預設字首目錄
spring.mvc.view.prefix=/WEB-INF/jsp/
# 響應頁面預設字尾
spring.mvc.view.suffix=.jsp
# 自定義屬性,可以在Controller中讀取
application.hello=Hello World
4.建立測試controller
@Controller
public class HelloController {
// 從 application.properties 中讀取配置,如取不到預設值為Hello
@Value("${application.hello:Hello}")
private String hello;
@RequestMapping("/helloJsp")
public String helloJsp(Map<String, Object> map) {
System.out.println("HelloController.helloJsp().helloWrold=" + hello);
map.put("hello", hello);
return "helloJsp";
}
}
對應的通路路徑是
http://localhost:8080/helloJsp(端口沒改的話)
return "helloJsp"
表明傳回的是helloJsp.jsp,字尾已經配置好了,字首是在/WEB-INF/jsp/目錄下找
5.啟動測試
如果出現說明有可能你的jsp依賴沒有引入
Paste_Image.png
引入依賴後,成功顯示出來