在Portlet中重定向到外部网站

3

我有一个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吗?
(想法是“停留”在用户可以看到“目标”网站的门户/门户中)
问候。
1个回答

1
如果您查看Portlet 2.0规范的第141页,它提到HttpServletResponse#sendRedirect()在渲染阶段是无操作的。 这就是为什么您没有看到它起作用的原因。根据语义,响应对象是一个HttpServletResponse,它对应于整个页面的响应,而不仅仅是此JSP所属的portlet的响应。由于页面现在是多个portlet的组合,每个portlet都有自己的生命周期,因此您应该使用renderResponse、actionResponse对象,避免使用servlet对象。 至于您最初的问题,我还没有找到解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接