【问题标题】:Including HTML page dynamically gives page not found error动态包含 HTML 页面会导致页面未找到错误
【发布时间】:2012-03-16 07:05:57
【问题描述】:

我试图在运行时在 jsp 页面中包含一个 HTML 页面。将包含哪个 HTML 页面将在运行时决定。当我使用以下代码包含 HTML 页面时:

<jsp:include page="${HTMLFILEPATH}"></jsp:include>

上面的表达式计算正确,但不包括 HTML 文件。浏览器在该路径找不到文件。尽管此路径中存在文件。目录结构如下:

WEB-INF - JSP - 报告 - htmlReport.html - myJsp.jsp

这是我得到的错误 错误 403:SRVE0190E:找不到文件:/WEB-INF/jsp/reports/htmlReport.html

但是,如果我使用以下方法,则效果很好:

<c:when test="${path=='reports/htmlReport.html'}">
<%@ include file="reports/htmlReport.html" %>
</c:when>

我正在使用 RAD 8.0.2、WAS7.0、Spring MVC 3.0+

【问题讨论】:

  • 什么是HTMLFILEPATH?它是如何设置的?看起来问题出在它上面,或者在评价它......
  • @SayemAhmed:HTMLFILEPATH 实际上是同一个“路径”变量,它来自控制器。

标签: java spring jsp web


【解决方案1】:

可能有两种可能性:

  1. HTMLFILEPATH 变量的问题:只需在 jsp:include 上方打印变量的值,看看它是否包含正确的值。

  2. jsp:include 标记之前已呈现,$HTMLFILEPATH 变量未解析。而是尝试使用 Java scriptlet &lt;jsp:include page="&lt;%=htmlFilePath%&gt;" /&gt;

您也可以使用 RequestDispatcher(我 100% 确定它会起作用 ;-))

RequestDispatcher reqDisp = request.getRequestDispatcher(htmlFilePath);
reqDisp.include(request, response);

【讨论】:

  • 感谢您的回复,我添加了 但给了我与 File not found: /WEB-INF/jsp/reports/reportName.html 相同的错误,尽管报告在那里而且这条路径是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
  • 1970-01-01
相关资源
最近更新 更多