本文介绍 Spring Boot 集成 JSP。
1、pom.xml 增加对 JSP 的支持
Spring Boot 的默认视图支持是 Thymeleaf 模板引擎,如果想要使用 JSP 页面,需要配置 servlet 依赖和 tomcat 的支持。
在 pom.xml 文件中增加如下代码:
<!-- servlet依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- tomcat的支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
2、application.yml 文件,将 JSP 文件重定向到 /WEB-INF/views/ 目录下
server:
port: 8889
servlet:
context-path: /springbootdemo-yml
name: jpm
age: 18
person:
name: jpm
age: 19
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
spring.mvc.view.prefix 指定 mvc 视图的前缀
spring.mvc.view.suffix 指定 mvc 视图的后缀
上面的配置表示可以返回/WEB-INF/views/目录下的*.jsp
在 webapp 下新建 /WEB-INF/views/ 目录,用于存放 jsp 文件
person.jsp:
<%@ page language="java" contentType="text/html; charset=Utf-8"
pageEncoding="Utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="Utf-8">
<title>Person</title>
</head>
<body>
Spring Boot ${person}
</body>
</html>
3、新建 PersonController.java
如果只使用 @RestController注解,则 Controller 中的方法无法返回 jsp页面,因此我们要用 @Controller 注解,新增 returnPerson() 方法用于返回 jsp 页面,返回一个 person 的值。
package com.jpm.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class PersonController {
@RequestMapping("/getPerson")
public String returnPerson(Model model) {
model.addAttribute("person", "你好,jsp!"); // 为页面设置属性
return "person"; // 返回person.jsp页面的名称person
}
}
4、运行程序
访问http://localhost:8889/springbootdemo-yml/returnPerson
下一篇将继续为大家进一步介绍 Spring Boot 的入门知识,欢迎关注。
扫码加好友,拉你进流群,一起探讨交流!