天天看點

SpringBoot 使用JSP開發Web項目

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源代碼目錄,不是普通檔案夾目錄。

如下圖:

SpringBoot 使用JSP開發Web項目

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

,即可輸出網頁,完成!