SEAM重定向页面从后端Bean。

4

我有一个关于SEAM的问题,我想从后端bean将用户重定向到另一个页面。

我知道在大多数情况下应该使用pages.xml,但是由于bean逻辑可能有许多不同的页面,因此似乎应该从bean中更容易实现。

我找不到任何人做过这个例子,所以我猜可能有原因,也许像这样会起作用?...

ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
((HttpServletRequest) ec.redirect("http://example.com/");
1个回答

5
您可以使用重定向组件:
@Name("yourBean")
public class YourBean {

  @In
  Redirect redirect;

  public void yourMethod() {
     redirect.setViewId("/someView.xhtml");
     redirect.setParameter("someParam", "someValue");
     redirect.execute();
  }
}

或者使用FacesManager:

FacesManager.instance().redirect("/someView.xhtml", paramMap,
  conversationPropagationEnabled, includePageParams);

这些仅适用于其他JSF视图(即.xhtml)。如果您只想要任意URL,可以像您在问题中提到的那样使用FacesContext。


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