多语言展示
当前在线:286今日阅读:26今日分享:39

springboot2.1.2版本整合jsp

虽然springboot2.0以后,springboot推荐使用的模板引擎是thymeleaf。但是很多企业用JSP比较多,如果页面过多,没有必要转换成thymeleaf,还是用Jsp吧。新开的项目可以考虑用thymeleaf。最近搞了一下,发现访问不到JSP,页面报错404。找了一些资料,解决了,在这里分享一下。
工具/原料
1

idea 2018.1

2

springboot2.1.2

3

jdk1.8

方法/步骤
1

我这里是在一个空的项目中添加的Module,你也可以新建一个springboot项目。新建一个springboot项目和Module的时候,一定要注意:选择打成war包。如下图:

2

引入相关jar包,web,jstl,tomcat-embed-jasper等。这里provided的意思是:打包的时候,排除掉当前jar。具体点:当我们用maven install生成最终的构件包war后,在其下的WEB-INF/lib中,会包含我们被标注为scope=compile的构件的jar包,而不会包含我们被标注为scope=provided的构件的jar包。这也避免了此类构件当部署到目标容器后产生包依赖冲突。如下图:

3

在src/main包下建一个webapp目录,在webapp目录下键WEB-INF目录,然后建立jsp目录,在jsp目录里面建立jsp页面。目录如下图:

4

在application.properties中配置jsp相关配置:spring.mvc.view.prefix=/WEB-INF/jsp/spring.mvc.view.suffix=.jsp如图:

5

写一个controller来进行页面的跳转,如图:

6

到了启动项目的时候了,出现了问题。右键运行启动类,访问页面报404错误使用spring-boot:run运行正常我的是Module项目,只能以spring-boot:run启动才能正常访问。查了资料以后,说是新建一个单独的项目,把tomcat-embed-jasper这个jar包的标签去掉就可以右键运行启动类,能访问到页面了。这个我没有试过,不过如果你是Module项目,可以用spring-boot:run来启动。如图:

7

我修改了默认端口,启动端口为8081.查看效果:

注意事项
1

使用外部tomcat部署项目的时候要注意,要排除springboot自带的tomcat

2

肯定还有更好的解决办法,期待你们的分享

推荐信息