Spring Boot 的默认视图支持是 Thymeleaf 模板引擎,但是想使用我们熟悉的JSP怎么办?
一.如何配置JSP
1. pom.xml中增加对 JSP 文件的支持
servlet依赖
<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路径
spring:
mvc:
view:
prefix: /WEB-INF/jsp/ # 页面默认前缀目录
suffix: .jsp # 响应页面默认后缀
3. jsp页面热部署配置
server:
port: 8080 #端口号
servlet:
jsp:
init-parameters:
development: true
二.使用JSP做视图有哪些问题
1. 项目部署问题
使用外部Tomcat部署,没有问题
若使用Spring boot内置的Tomcat需要将项目打成war包
(如果打jar包,WEB-INF下的jsp页面打不进去,无法访问.
Linux下项目启动命令:nohup java -jar demo-0.0.1-SNAPSHOT.war > system.log 2>&1 &)
<packaging>war</packaging>
2. JAR包冲突问题
当使用了阿里云以下依赖,启动项目时报错 \jaxb-impl\2.3.0\jaxb-api.jar (系统找不到指定的文件)等类似问题,但不影响使用
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.0.6</version>
</dependency>
解决方式:
(第一种)
① pom.xml中添加依赖
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
② 手动添加jar包到maven仓库
jaxb-api.jar
jaxb-core.jar
jaxb-impl-2.3.0.jar
[推荐] (第二种)
解决冲突,修改pom.xml中aliyun的依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.0.6</version>
<exclusions>
<exclusion>
<artifactId>jaxb-api</artifactId>
<groupId>javax.xml.bind</groupId>
</exclusion>
<exclusion>
<artifactId>jaxb-impl</artifactId>
<groupId>com.sun.xml.bind</groupId>
</exclusion>
</exclusions>
</dependency>