重定向到Portlet中的外部网站

时间:2012-06-07 16:46:43

标签: url redirect portlet

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

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

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

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

为什么它根本不起作用? (我在JSP中放了一个<div>foobar<div>,看看它是否有效,但确实如此 是否有另一种解决方案可以重定向到外部URL?

(想法是“留在”portlet / portal中,用户可以在其中看到“目标”网站)

问候。

1 个答案:

答案 0 :(得分:1)

如果查看Portlet 2.0 specification的第141页,它会提到HttpServletRespone #sendRedirect()在呈现阶段是NO-OP。

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

我现在还没找到原始问题的解决方案。