Перенаправление из метода doView в портлете
Вопрос
Я использую Websphere portal 6.0, и мне интересно, есть ли способ, которым я могу указать серверу, какую страницу отображать с помощью метода doView.Я знаю, что могу сделать это с помощью метода processAction, но, к сожалению, семантика проблемы этого не позволяет.
Спасибо вам за вашу помощь
Решение
Как я понимаю, вы хотите решить, какую JSP / HTML-страницу вы собираетесь показывать пользователю.
В этом случае это то, что вам нужно сделать.
public void doView(RenderRequest req, RenderResponse res) throws IOException,
PortletException {
PortletRequestDispatcher prd =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/view.jsp");
prd.include(req, res);
}
Вы можете каждый раз решать, для какого jsp вы хотите получить диспетчер запросов.
Другие советы
Я сомневаюсь, что можно отправить перенаправление в doView().На это есть две причины:
- По соображениям производительности и по ряду других причин портал может вызвать функцию doView() после того, как заголовки HTTP-ответа портала были сгенерированы и отправлены - таким образом, слишком поздно для выполнения перенаправления.
- Было бы довольно "злым" иметь возможность делать это - функция doView() портлета может быть вызвана порталом в любое время, без взаимодействия пользователя с этим портлетом.Таким образом, портлет может выполнять перенаправление после случайного обновления страницы или взаимодействия с другим портлетом.
В общем, я бы сказал, что если портлету нужно сделать перенаправление в doView, то для этого может потребоваться редизайн.Возможно, попробуйте описать вашу проблему более подробно.