【问题标题】:JSP include prefixes the project name in the linkJSP 在链接中包含项目名称的前缀
【发布时间】:2012-12-01 00:47:53
【问题描述】:

我在共享文件夹中有一个 html 文件(即,不在 Web 服务器位置),我必须将它包含在一个 jsp 中,使用 <jsp:include page="//TestFolder/Sample.html">。 运行应用程序时,页面上会出现以下错误:

The requested resource (/projectName//TestFolder/Sample.html) is not available 

此处应用程序名称 (/projectName) 以目标路径为前缀。如何去掉应用名,让html可以包含在jsp中?

任何澄清都将是可观的。

谢谢。

【问题讨论】:

  • 粘贴jsp页面包含html的代码...
  • 对不起,我在编辑时错过了它。现在它已被添加。
  • 您是否尝试过<jsp:include page="/TestFolder/Sample.html"> - 在路径前使用/ 而不是//
  • 尝试从包含路径中删除“/”
  • HTML 是否在同一个 Web 应用程序中,如果是,为什么前面的应用程序名称有问题?

标签: html jsp tags


【解决方案1】:

jsp:include 操作只能在同一个 servlet 上下文中使用。它只接受相对 url(相对于页面或相对于应用程序)

【讨论】:

  • 感谢您的回复。我必须找到替代方案。
【解决方案2】:

根据您的评论,使用 jsp 包含标签或 jsp 包含指令无法实现您想要实现的目标。这是因为,归根结底,所有 JSP 都变成了 servlet。现在,一个依赖于它的 WAR(或任何其他包装)之外的 servlet 会非常棘手,不是吗?

不过,我想您可以创建自己的标签,动态读取静态 HTML 文件并包含其内容作为响应。请注意,绕过此限制将使您的应用程序面临此 HTML 不可用的风险,除非您为此准备好标签。

【讨论】:

  • 谢谢 Michal M. 作为替代方案,我必须尝试 'c:import file="filetoBeIncluded"' 这是一个 JSTL 标记。
  • 好吧,我正要写,除非目标文件本身可以作为网络资源使用,否则这是不可能的,但事实证明,我错了——这里的人就是这样做的c:import: coderanch.com/t/287204/JSP/java/JSTL-import 所以不需要自己写标签;我的错!
猜你喜欢
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 2020-06-24
  • 1970-01-01
  • 2020-12-19
  • 2019-01-10
  • 2014-04-28
  • 1970-01-01
相关资源
最近更新 更多