1、Springboot 官方已经不建议使用JSP 开发web 项目,建议使用模板 ,例如freemarker velocity
2、考虑当前研发成员对框架的熟悉情况,以及后期项目架构调整的计划,还是暂时使用JSP
3、Springboot 构建JSP web 配置
构建项目:file-->new -->project-->spring initializr ,填写项目名称、包名等路径,然后选择Web组件
(1) 在src/main/java 下新建webapp,并新建webapp的子目录 WEB-INF
(2) 打开file-->project Structure-->Modules 新建一个web目录
项目结构图如下:
(3) 在application.properties中 配置路径解析器,指定静态资源访问了路径
#mvc页面访问路径解析
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
#静态资源路径配置
spring.mvc.static-path-pattern=/static/**
在controller中映射对应jsp页面,在浏览器中即可访问
4、打包项目(重要--有坑)
(1)springboot 项目一般基于内置tomcat直接运行,打包为jar包形式,运行时执行命令: java -jar *****<项目名称>.jar 即可运行。
(2)如果我们新建了webapp后,在IDEA中运行没问题,打包时发现 webapp无法被加载到最后打包形成的jar中。
打包jar解压后的目录结构:唯独没有webapp下的内容
(3)依赖maven的resouce 插件手动加载webapp下的内容到BOOT-INF(尝试失败)
根据web项目的一般目录结构,WEB-INF下的views及web.xml 应该放到BOOT-INF 和classpath 文件夹处在同一个目录即可
通过以上配置,文件资源加载到BOOT-INF下了,项目可正常启动,但jsp 页面无法解析,不能正常访问页面
(4)修改maven打包方式为war,同样以命令 java -jar *******<项目名称>.war 运行,web项目可正常运行且页面可正常访问 (终极解决方式)
解压war包查看目录结构:我们熟悉的web项目结构又回来了
总结:在idea中打包为何种方式均可,部署项目时,maven须以war包形式打包,仍然可以使用命令运行,也可将内置tomcat架包移除后,将war包放在tomcat 服务器下运行