动态包含HTML页面会发现页面未找到错误

时间:2012-03-16 07:05:58

标签: java spring jsp web

我试图在运行时在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 +

1 个答案:

答案 0 :(得分:1)

可能有两种可能性:

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

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

  3. 或者你可以使用RequestDispatcher(我100%肯定它会起作用;-))

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