Перенаправление из метода doView в портлете

Я использую портал Websphere 6.0, и мне интересно, есть ли способ сообщить серверу, какую страницу отображать из метода doView. Я знаю, что могу сделать это из метода processAction, но, к сожалению, семантика проблемы не позволяет этого.

спасибо за помощь


person Jaime Garcia    schedule 13.03.2009    source источник


Ответы (2)


Насколько я понимаю, вы хотите решить, какую 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 вы хотите получить диспетчер запросов.

person Montecarlo    schedule 30.05.2009

Я сомневаюсь, что можно отправить перенаправление в doView(). Две причины тому:

  • Из соображений производительности и других причин портал может вызвать doView() после того, как заголовки HTTP-ответа портала были сгенерированы и отправлены, поэтому слишком поздно для перенаправления.
  • Это может быть довольно "зло" - сделать это портлетом, doView() может быть вызван порталом в любое время, без взаимодействия пользователя с этим портлетом. Таким образом, портлет может выполнять перенаправление после случайного обновления страницы или взаимодействия с другим портлетом.

В общем, я бы сказал, что если портлету нужно сделать перенаправление в doView, то может потребоваться переделка. Возможно, попробуйте более подробно описать свою проблему.

person david a.    schedule 18.03.2009