IDEA社区版springboot整合JSP
pom.xml文件需要额外添加如下依赖(关键):<!-- 引入SpringBoot内嵌Tomcat对jsp的解析依赖,不添加这个解析不了jsp --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat&l
·
pom.xml文件需要额外添加如下依赖(关键):
<!-- 引入SpringBoot内嵌Tomcat对jsp的解析依赖,不添加这个解析不了jsp -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!--注意:spring boot对jsp的支持不是很好,在使用spring boot自带tomcat的同时,还需要引入另外的一个tomcat,以来如下所示,且scope属性需要被注释掉 -->
<!--注掉的原因是:maven默认scope是compile,表示打包时会把此包打入jar包中,而provided表示打包时不会打如jar包中,因为它默认是jar包中会提供,说白了就是你标注了provided就不会被打入jar包中,项目跑起来就肯定会有问题了 2019/12/4 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!-- <scope>provided</scope> 注意,这个scope需要被注释掉 -->
</dependency>
<!-- jsp标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
application.properties如下配置:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
对应文件目录设置如下:
index.jsp文件源码如下:
<%@ page contentType="text/html; utf-8" pageEncoding="utf-8" language="java" %>
<html lang="en">
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
Welcome!${user.name}
</body>
</html>
Controller层添加如下测试代码:
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView hello(){
User user = new User();
user.setName("hello world");
ModelAndView mv = new ModelAndView("index");
mv.addObject("user",user);
return mv;
}
}
最后前端显示结果如下:
注意:
在pom.xml文件中要去除springboot标配的thymeleaf的依赖,否则会报500错误:
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-thymeleaf</artifactId>-->
<!-- </dependency>-->
推测是thymeleaf模板引擎会与前面对JSP的依赖配置冲突,具体原因先占个坑,后面在做研究。
更多推荐
已为社区贡献1条内容
所有评论(0)