【问题标题】:Redirection to an external website in a Portlet重定向到 Portlet 中的外部网站
【发布时间】:2012-06-11 18:24:34
【问题描述】:

我有一个portlet,其中doView 方法使用以下指令调用display.jsp 页面:

getPortletContext().getRequestDispatcher("/views/display.jsp").dispatcher.include(request, response);

display.jsp,我想重定向到外部网站:

<%
response.sendRedirect("http://www.google.fr");
%>

为什么它根本不起作用? (我在 JSP 中放了一个&lt;div&gt;foobar&lt;div&gt; 看看它是否有效并且确实有效) 是否有另一种解决方案可以重定向到外部 URL?

(这个想法是“停留”在用户可以看到“目标”网站的 portlet/portal 中)

问候。

【问题讨论】:

    标签: url redirect portlet


    【解决方案1】:

    如果您查看 Portlet 2.0 specification 的第 141 页,它提到 HttpServletRespone#sendRedirect() 在渲染阶段是一个 NO-OP。

    所以这就是你看不到这个工作的原因。根据语义,响应对象是一个 HttpServletResponse,它对应于整个页面的响应,而不仅仅是该 JSP 所属的 portlet。由于页面现在是多个 portlet 的组合,并且每个 portlet 都有自己的生命周期,因此您应该使用 renderResponse、actionResponse 对象之一,并避免使用 servlet 对象。

    不过,我还没有为您原来的问题找到解决方案。

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多