Redirect GateIn-portlet内的重定向

Redirect GateIn-portlet内的重定向,redirect,portlet,jboss-portal,gatein,Redirect,Portlet,Jboss Portal,Gatein,如何通过支持bean中的URL将用户重定向到portlet中的其他页面?我们正在JBoss5.1.0上使用Gatein3.1 通常,FacesContext.getCurrentInstance.getExternalContext.redirecturl就足够了,但在这里它不起作用,它不会重定向用户 context.getApplication.getNavigationHandler.handleNavigationcontext,null,页也不工作 我们希望避免为每个可能重定向到的页面制

如何通过支持bean中的URL将用户重定向到portlet中的其他页面?我们正在JBoss5.1.0上使用Gatein3.1

通常,FacesContext.getCurrentInstance.getExternalContext.redirecturl就足够了,但在这里它不起作用,它不会重定向用户

context.getApplication.getNavigationHandler.handleNavigationcontext,null,页也不工作

我们希望避免为每个可能重定向到的页面制定导航规则

编辑:
似乎a4j:commandButton导致了一些问题,在我们将其替换为h:commandButton后,我们被重定向,但不仅在portlet中,而且在门户中。

要使sendRedirect可用,您必须将对象响应转换为HttpServletResponse:

HttpServletResponse objHttpServletResponse = (HttpServletResponse)
                          FacesContext.getCurrentInstance()
                                      .getExternalContext()
                                      .getResponse();
objHttpServletResponse.sendRedirect(url);

这是一个302重定向,由浏览器管理。

除了在faces-config.xml中有许多导航案例外,我发现唯一可行的方法是使用FacesContext.getCurrentInstance.getViewRoot.setViewIdpage重定向,其中页面为字符串page=FacesContext.getCurrentInstance.getViewRoot.getViewId。

您是否尝试过FacesContext.getCurrentInstance.getExternalContext.getResponse.sendRedirecturl;FacesContext.getCurrentInstance.responseComplete?我没有sendRedirect方法。我尝试了responseComplete,但这会导致类似门户重定向的情况,因为我得到的是空页面,上面只有一个。我知道,但响应不是HttpServletResponse对象,而是org.jboss.portletbridge.richfaces.BufferedResourceResponseRapper。