我试图在运行时在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 +
答案 0 :(得分:1)
可能有两种可能性:
HTMLFILEPATH
变量问题:只需打印jsp:include
上方的变量值,看看它是否包含正确的值。
jsp:include
标记之前已呈现,$HTMLFILEPATH
变量未解析。而是尝试使用Java scriptlet
<jsp:include page="<%=htmlFilePath%>" />
或者你可以使用RequestDispatcher
(我100%肯定它会起作用;-))
RequestDispatcher reqDisp = request.getRequestDispatcher(htmlFilePath);
reqDisp.include(request, response);