来自支持bean的SEAM重定向页面

时间:2012-03-01 17:33:29

标签: jsf seam

我有一个正确的新手SEAM问题,我想将用户重定向到支持bean的不同页面

我知道在大多数情况下你应该使用pages.xml,但是根据bean的逻辑,可能会有很多不同的页面,所以看起来它应该比bean更容易。

我无法看到任何人这样做的例子,所以我猜这有一个原因,也许这样的事情会起作用?...

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

1 个答案:

答案 0 :(得分: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,您可以使用问题中提到的F​​acesContext。