【问题标题】:Include JSP file under WEB-INF folder在 WEB-INF 文件夹下包含 JSP 文件
【发布时间】:2012-12-30 22:39:51
【问题描述】:

有什么方法可以从本地存储文件夹中包含 JSP 文件,在 WEB-INF 下?

我在我的 config.properties 中定义了绝对路径 ${externalFolder} 到包含外部 jsp 文件的文件夹,控制器映射到 /page 和 jsp 页面 page.jsp 在 WEB-INF/jsp/ 目录下。

在这个文件page.jsp中我要调用:

WEB-INF/jsp/page.jsp

<%@page session="true" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <html>
...
<body>
<jsp:include page="${externalFolder}/someJspFile.jsp" />
</body>
</html>

感谢您的帮助。

【问题讨论】:

  • WEB-INF 下的任何文件都是受保护的资源。必须通过从ServletContext 调用/WEB-INF/someJspFile.jsp 来访问它。
  • 我知道,但我需要在外部有一些可用的 Jsp 文件。有什么办法可以解决吗?
  • 在它的应用程序或 WAR 文件之外?
  • 是的,但与应用程序在同一台服务器上,只是不同的文件夹。
  • 那么它超出了您的应用程序 Servlet 上下文,我不知道如何将 JSP 文件从上下文中取出并将其添加到您的应用程序“servlet”上下文中。

标签: java spring jsp spring-mvc include


【解决方案1】:

我使用这个自定义 servlet 解决了这个问题:Content tag lib

自定义 JSP 标记。允许您将文件内容包含到当前页面中。标记类似于标准 JSP 包含,但现在您可以包含位于 Web 应用程序之外的文件。例如:

 <%@ taglib uri="taglib.tld" prefix="add" %>
 <add:content file="c:/mydata/myfile.jsp"/>

包括给定文件的内容(例如 .html 或 .jsp)。参数为:
1.file:文件的完整路径
2.flush可选参数。可能的值为真或假。如果此值为 true,则标记刷新缓冲区。默认值为 false。
3.cond可选参数。描述一个布尔值标签的行为依赖。默认值为 true(包括内容)。

【讨论】:

    猜你喜欢
    • 2014-11-12
    • 2014-08-17
    • 2018-12-12
    • 2015-01-23
    • 2010-11-20
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多