Включить статический файл в JSP с переменным именем файла в WebSphere 6
Я борюсь за включение статического файла в мои JSP на Websphere 6.0.2.17. Я попробовал это:
<% final String MY_DIR = ResourceBundle.getBundle("mybundle").getString("props.pages.wcm"); %>
<% final String page = ResourceBundle.getBundle("mybundle").getString("page"); %>
<% final String inc = MY_DIR + "/" + bonus; %>
<%@include file="<%= inc %>"%>
Путь - /wcm/some/other/dir/page, и я могу с радостью распечатать его с помощью out.write(inc)
, К сожалению include
(и jsp:include
) не включает файл вообще. Нет сообщения об ошибке, но содержимое не включено... Файл доступен через браузер.
Должен ли я создать полную JSP, чтобы это работало? Мне просто нужен HTML-файл.
Обновить
Так как рано или поздно будет добавлено больше страниц, я решил создать собственную библиотеку тегов для этого случая. Таким образом, я могу ограничить функциональность и установить базовый каталог для моего статического содержимого в файле свойств.
2 ответа
Попробуйте использовать RequestDispatcher.include():
<%
RequestDispatcher r = request.getRequestDispatcher(inc);
r.include(request, response);
%>
Это подобно директиве include, за исключением того, что любая страница, которую вы включаете, будет обрабатываться каждый раз (если это JSP или сервлет). Директива include обрабатывает страницу только один раз, когда JSP-файл, в котором находится директива, компилируется.
Я пробовал jsp:include
и файл был включен отлично.
Имейте в виду, что вы должны предоставить относительный путь, а не абсолютный путь.