Название может вводить в заблуждение, так как я не могу найти лучшего.
Я работаю над двумя страницами jsp.Один обрабатывает основной фрейм, а другой используется для показа контента (в настоящее время одно изображение, но оно может измениться позже).Я хочу включить вторую страницу (которая содержит контент) в первую страницу (которая является основным фреймом), используя что-то вроде этого:
<jsp:directive.include file="includes/myContentPage.jsp" />
(это внутри главной страницы).
Однако эта страница содержимого обрабатывается сервлетом.Этот сервлет назначает все соответствующие данные для запроса, и страница содержимого использует их как $ {myAttribute}, например:
<img style="margin-right: 30px; margin-top: 30px;" src="${myAttribute}" />
Когда я вызываю сервлет (и, следовательно, страницу содержимого jsp), он показываетправильно (потому что он использует свой собственный запрос с надлежащими атрибутами), но когда я вызываю главную страницу (ту, которая включает страницу содержимого), она не работает должным образом.В моем случае у него нет атрибута «myAttribute» в запросе, и, следовательно, атрибут не передается, в данном случае, тегу src img.
Думаю, я понимаю, почему это вызвано (использование запроса страницы основного фрейма вместо запроса страницы контента) и тот факт, что запрос контента действительно не имеет запроса (поскольку сервлет использует страницу, а не наоборот), так что, есть ли способы решитьэтот?Могу ли я как-то сказать странице использовать этот сервлет при вызове (хотя я пытался переслать его, это приводит к бесконечному циклу, потому что страница и сервлет вызывают их друг друга).
Есть ли другое решение?Имейте в виду, что я не могу коснуться некоторых вещей (например, запроса страницы основного фрейма), но все, что связано со страницей контента, может быть изменено (включая сервлет).Может быть, решение заключается в том, чтобы включить страницу другим способом, а не просто включить ее в виде файла?
Какой-то соответствующий код
Обработчик сервлета
request.setAttribute("myAttribute", myAttribute);
request.getRequestDispatcher("/WEB-INF/.../myContentPage.jsp").forward(request, response);
Определение сервлета
@WebServlet(urlPatterns={"/myContentServlet" }, name="myContentServlet")