1. 程式人生 > >Spring Boot 整合 JSP 示例

Spring Boot 整合 JSP 示例

原文地址: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

spring-boot-jsp-index

user.jsp
spring-boot-jsp-user

本文所有程式碼放在 Github 上,地址:spring-boot-jsp