介绍
SpringBoot官方不推荐的jsp,推荐使用Thymeleaf,jsp只是多了webapp这个目录用来存放jsp的目录,静态资源还是放在resources的static下面
目录结构
引入依赖
<!--WEB支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--jsp页面使用jstl标签-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--用于编译jsp-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--
**有添加provided的情况:**
- 右键运行启动类,访问页面报404错误
- 使用spring-boot:run运行正常
- 打包成jar,通过 java -jar demojsp-0.0.1-SNAPSHOT.jar 运行报错
- 打包成war,通过 java -jar demojsp-0.0.1-SNAPSHOT.war 运行正常
**把provided 注释掉的情况**
- 右键运行启动类,访问页面正常
- spring-boot:run运行 访问页面正常
- 打包成jar,通过 java -jar demojsp-0.0.1-SNAPSHOT.jar 运行报错
- 打包成war,通过 java -jar demojsp-0.0.1-SNAPSHOT.war 运行正常
-->
<scope>provided</scope>
</dependency>
配置文件(resources/application.yml)
spring:
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
Controller(me.ziry.demojsp.controller.DemoController)
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class DemoController {
@GetMapping("/index")
public String index(Model model){
model.addAttribute("name", "测试添加jsp");
return "index";
}
}
JSP(webapp/WEB-INF/jsp/index.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOC TYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Demo jsp</title>
</head>
<body>
内容:${name}
</body>
</html>
参考文章
http://tengj.top/2017/03/13/springboot5/
注意:本文归作者所有,未经作者允许,不得转载