Spring官方文档的解释:
28.4.5 JSP Limitations
When running a Spring Boot application that uses an embedded servlet container (and is packaged as an executable archive), there are some limitations in the JSP support.
- With Jetty and Tomcat, it should work if you use war packaging. An executable war will work when launched with
java -jar
, and will also be deployable to any standard container. JSPs are not supported when using an executable jar. - Undertow does not support JSPs.
- Creating a custom
error.jsp
page does not override the default view for error handling. Custom error pages should be used instead.
There is a JSP sample so that you can see how to set things up.
当运行一个有内置servlet容器(或者打包成一个可执行文件)的SpringBoot应用时,有以下几个对JSP文件的限定条件:
· 在Jetty和Tomcat容器中,SpringBoot应用被打包成war文件可以支持JSP。可以使用java -jar命令或者部署到任何标准容器中都可以让一个可执行war包工程运行。但是当SpringBoot打包成jar包时就不再支持JSP。
·Undertow 不支持JSP
·创建一个error.jsp不能覆盖掉错误页面的默认视图,Custom error pages 可以实现代替。
官网也给出了一个git地址放了一个支持JSP的SpringBoot工程,可以按照这个工程配置我们自己的工程支持JSP,在遵循上述规则打包成war包放入外置web容器(除Undertow)运行。