JSP (貌似Spring Boot官方不推荐,创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录)
如果需要使用JSP怎么办呢?
最需注意的如下这个依赖,少了这一个不能使用jsp
(可以不指定版本)
1.在pom.xml中引入tomcat-embed-jasper依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
2创建目录webapp/WEB-INF/jsp来存放jsp页面
注意webapp和java是同级目录,都是main下的
创建个jsp页面名叫helloJsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>我是标题</title>
</head>
<body>
helloJsp
<hr>
${hello}
</body>
</html>
3.application.properties文件中配置jsp访问路径
# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
# 响应页面默认后缀
spring.mvc.view.suffix=.jsp
# 自定义属性,可以在Controller中读取
application.hello=Hello World
4.创建测试controller
@Controller
public class HelloController {
// 从 application.properties 中读取配置,如取不到默认值为Hello
@Value("${application.hello:Hello}")
private String hello;
@RequestMapping("/helloJsp")
public String helloJsp(Map<String, Object> map) {
System.out.println("HelloController.helloJsp().helloWrold=" + hello);
map.put("hello", hello);
return "helloJsp";
}
}
对应的访问路径是http://localhost:8080/helloJsp
(端口没改的话)return "helloJsp"
表明返回的是helloJsp.jsp,后缀已经配置好了,前缀是在/WEB-INF/jsp/目录下找
5.启动测试
如果出现说明有可能你的jsp依赖没有引入
引入依赖后,成功显示出来