栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如果我们添加适当的jar引用,为什么Spring Boot不支持jsp却可以呈现页面,为什么它不支持jsp

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如果我们添加适当的jar引用,为什么Spring Boot不支持jsp却可以呈现页面,为什么它不支持jsp

默认情况下,嵌入式Tomcat软件包(在springboot中用于创建可执行jar)不包含JSP,因此我们还必须添加该模块

“org.apache.tomcat.embed:tomcat-embed-jasper”
,这就是我们
tomcat-embed-jasper
在springboot
中添加为依赖项的原因,以便可以使用jstl标记在jsp中。

当将springboot

*jar
用作打包时,springboot无法与jsp作为视图解析器一起正常工作的主要原因是由于 Tomcat 中使用
了硬编码的文件模式 。问题是,当您
java-*.jar
用于部署springboot应用程序时,jsp文件不会出现在嵌入式tomcat中,并且在尝试满足请求时,您将获得 404 PAGE NOT
FOUND
。这是因为jar打包,所以不会从
WEB-INF
文件夹中复制jsp文件。如果
meta-INF/resources
使用jar打包时将jsp文件保留在文件夹下,则应该可以。

Thymeleaf允许将模板用作原型,这意味着可以将它们视为静态文件并放在

resources/templates
文件夹中以供spring使用。但是jsp文件将具有jstl标记等,在呈现之前需要jasper对其进行编译,因此无法将其设置为据我所知静态文件。

使用 WAR (Web应用程序归档文件)时,打包将自动从以下项目结构中获取资源:

 |-- pom.xml `-- src     `-- main         |-- java         |   `-- com         |       `-- example         |`-- projects         |    `-- SampleAction.java         |-- resources         |   `-- images         |       `-- sampleimage.jpg         `-- webapp  |-- WEB-INF  |   `-- web.xml  |-- index.jsp  `-- jsp      `-- websource.jsp

在jsp中使用springboot的指南和官方样本:Guide,示例仓库

WAR打包结构坚持将jsp文件保存在

webapp/
文件夹下,并且它将按预期工作。maven war目标会将文件从webapp文件夹复制到
WEB-INF
,所有资源文件(如jsp)将位于war包装的根目录。从此处开始,maven-repackage目标或spring boot重新包装将负责制作jar
/ war可执行文件,因此,如果这些文件存在于原始war中,它也将位于可执行文件中。springboot 可执行war结构 如下所示:

example.war | +-meta-INF |  +-MANIFEST.MF +-org |  +-springframework |     +-boot |        +-loader |+-<spring boot loader classes> +-WEB-INF    +-classes    |  +-com    |     +-mycompany    |        +-project    |+-YourClasses.class    +-lib    |  +-dependency1.jar    |  +-dependency2.jar    +-lib-provided       +-servlet-api.jar       +-dependency3.jar

因此,对于评论:

如果将jsp文件放在文件夹中

src/main/resources
,则
WEB-INF/classes
根据 WAR
文档,该目录中的所有内容都将自动复制到。

因此,如果将jsp文件保存在src / main /
resources下并在yml或属性文件中配置以下内容,则该文件应可用于WAR存档。我还没有尝试过,所以不确定。

spring.mvc.view.prefix = /WEB-INF/classes/templatesspring.mvc.view.suffix = .jsp


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392938.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号