3

我正在使用 Websphere 门户 6.0,我想知道是否有一种方法可以告诉服务器从 doView 方法呈现哪个页面。我知道我可以通过 processAction 方法做到这一点,但不幸的是问题的语义不允许这样做。

感谢您的帮助

4

2 回答 2

3

我怀疑是否可以在 doView() 中发送重定向。有两个原因:

  • 出于性能和其他各种原因,门户可能会在门户的 HTTP 响应的标头生成并发送出去后调用 doView() - 因此发出重定向为时已晚。
  • 能够做到这一点可能非常“邪恶”——portlet 的 doView() 可以随时由门户调用,而无需用户与该 portlet 交互。因此,portlet 可以在随机页面刷新或与另一个 portlet 交互之后进行重定向。

一般来说,我会说如果portlet 需要在doView 中进行重定向,那么它可能需要重新设计。也许尝试更详细地描述您的问题。

于 2009-03-18T12:35:16.630 回答
3

据我了解,您想决定要向用户显示哪个 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 的请求调度程序。

于 2009-05-30T09:25:53.590 回答