1. 背景
Spring Boot目前開發Web應用這塊,使用Restful風格做前後端分離實作的應該是主流了。不過也有很多朋友們使用模闆引擎,常用的如Jsp/ Thymeleaf/ Freemarker。
注意Spring Boot官方已經不推薦使用JSP了,确實操作起來也比較麻煩,但是由于JSP使用者體量還是比較大的,是以還是簡單示範下。
2. 修改pom.xml引入JSP依賴
添加依賴項,開啟SpringBoot對Web項目及JSP的支援
<!-- 添加web開發功能 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--内嵌的tomcat支援子產品 -->
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
<!-- 對jstl的支援 -->
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
3. 添加webapp目錄存放JSP檔案
手工添加src/main/webapp及子目錄如下,同時目錄下放一個index.jsp用于測試。注意該目錄是一個Source Folder源代碼目錄,不是普通檔案夾目錄。
如下圖:
4. 注冊視圖解析器
在配置類内添加視圖解析器
@SpringBootApplication
public class SpringbootTemplatedemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootTemplatedemoApplication.class, args);
}
@Bean//注冊視圖解析器
public InternalResourceViewResolver setupViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/jsp/");//自動添加字首
resolver.setSuffix(".jsp");//自動添加字尾
return resolver;
}
5. 建立一個控制器
建立控制器,用于跳轉到index.jsp頁面
@Controller
public class JspController {
@RequestMapping("/jsp") // 通路路徑
public String jsp(Model model) {
model.addAttribute("name", "貓哥");//攜帶屬性值
return "index";//跳轉頁面
}
6. 建立網頁
建立index.jsp頁面,取出後端穿過來的屬性值
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${name}
</body>
</html>
7. 測試
直接通路
http://127.0.0.1:1004/jsp,即可輸出網頁,完成!