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

Dav*_*veB 4 jsf seam

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

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

我不能看到任何人这样做的例子,所以我猜有一个原因,也许这样的东西可以工作?? ...

ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
((HttpServletRequest) ec.redirect("http://example.com/");
Run Code Online (Sandbox Code Playgroud)

Jer*_*Orr 5

您可以使用Redirect组件:

@Name("yourBean")
public class YourBean {

  @In
  Redirect redirect;

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

或者使用FacesManager:

FacesManager.instance().redirect("/someView.xhtml", paramMap,
  conversationPropagationEnabled, includePageParams);
Run Code Online (Sandbox Code Playgroud)

这些只适用于其他JSF视图(即.xhtml).如果您只想要任意URL,可以使用问题中提到的F​​acesContext.