0

如何通过 URL(在支持 bean 中)将用户重定向到 portlet 中的其他页面?我们在 JBoss 5.1.0 上使用 GateIn 3.1

通常,FacesContext.getCurrentInstance().getExternalContext().redirect("url")就足够了,但在这里它不起作用,它不会重定向用户。

context.getApplication().getNavigationHandler().handleNavigation(context, null, page)也不行。

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

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

4

2 回答 2

0

faces-config.xml我发现唯一的其他选择(在 中有许多导航案例)是使用FacesContext.getCurrentInstance().getViewRoot().setViewId(page)重定向,其中 page 是String page = FacesContext.getCurrentInstance().getViewRoot().getViewId().

于 2013-12-18T07:41:16.987 回答
0

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

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

这是由浏览器管理的 302 重定向。

于 2013-12-17T08:22:00.123 回答