Использование вставленного запроса jsp-страницы вместо запроса основной jsp-страницы - PullRequest
0 голосов
/ 22 февраля 2019

Название может вводить в заблуждение, так как я не могу найти лучшего.

Я работаю над двумя страницами 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")

1 Ответ

0 голосов
/ 28 февраля 2019

Ну, после некоторых размышлений, я не смог прийти с ответом, поэтому я просто прекратил использовать сервлет и использовал пружинный бин для вставки свойств содержимого в первую страницу jsp, и отбросил вторую.Я мог бы по-прежнему использовать второй jsp с теми же значениями пружины на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...