Spring Boot 整合 JSP 示例
阿新 • • 發佈:2018-11-10
原文地址:https://renguangli.com/articles/spring-boot-jsp
JSP 全名為Java Server Pages,中文名叫 Java伺服器頁面,其根本是一個簡化的 Servlet 設計,它是由 Sun Microsystems公司倡導,許多公司參與一起建立的一種動態網頁技術標準.
Spring Boot 預設不支援 JSP,如果你不喜歡 JSP,可以嘗試以下 Thymeleaf,它是 Spring Boot 預設支援的模板引擎。如果你習慣使用 JSP,Spring Boot 通過配置也可以支援。
快速開始
在 pom.xml 檔案新增 JSP 依賴
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId >
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
pom.xml 檔案 packaging 改為 war,JSP不能在可執行 jar 中使用
< packaging>war</packaging>
JSP 相關配置
application.properties
# jsp
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
新建 src\main\webapp\WEB-INF\jsp 目錄存放 JSP 檔案
Spring boot 啟動類繼承 SpringBootServletInitializer 類,並重寫 configure(SpringApplicationBuilder builder)
方法,以便 war 可以在 tomcat 下正常執行
@SpringBootApplication
public class JspApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(JspApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(JspApplication.class);
}
}
編寫 controller
@Controller
public class JspController {
@GetMapping("/user")
public String index(HttpSession session) {
List<User> users = new ArrayList<>();
users.add(new User(1L, "admin", "admin", LocalDateTime.now()));
users.add(new User(1L, "dali", "dali", LocalDateTime.now()));
model.addAttribute("users", users);
session.setAttribute("login_user", "admin");
}
}
編寫 JSP 檔案
在 src\main\webapp\ 目錄下新建 index.jsp
檔案
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>Spring Boot 整合 JSP 示例</title>
</head>
<body>
<h2>Welcome to spring-boot-jsp index page</h2>
</body>
</html>
在 src\main\webapp\WEB-INF\jsp 目錄下新建 user.jsp
檔案
<%--
Created by IntelliJ IDEA.
User: rengu
Date: 2018/10/14
Time: 22:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Spring Boot 整合 JSP 示例</title>
</head>
<body>
<h2>Welcome to spring-boot-jsp user page</h2>
<p>login user is ${login_user}</p>
<h2>使用者列表</h2>
<table>
<c:forEach var="user" items="${users}">
<tr>
<td>${user.userId}</td>
<td>${user.username}</td>
<td>${user.password}</td>
<td>${user.createTime}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
效果圖
index.jsp
user.jsp
本文所有程式碼放在 Github 上,地址:spring-boot-jsp