Включение HTML-страницы динамически приводит к ошибке «страница не найдена» - PullRequest
0 голосов
/ 16 марта 2012

Я пытаюсь включить страницу HTML внутри страницы JSP во время выполнения.Какая 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 Ответ

1 голос
/ 16 марта 2012

Возможны две возможности:

  1. Проблема с HTMLFILEPATH переменной: просто выведите значение переменной чуть выше jsp:include и посмотрите, содержит ли оно правильное значение.

  2. Тег jsp:include обрабатывается раньше, а переменная $HTMLFILEPATH не разрешается. Вместо этого попробуйте использовать скриптлет Java <jsp:include page="<%=htmlFilePath%>" />

В качестве альтернативы вы можете использовать RequestDispatcher (я уверен на 100%, что это сработает ;-))

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