我有一个正确的新手SEAM问题,我想将用户重定向到支持bean的不同页面
我知道在大多数情况下你应该使用pages.xml,但是根据bean的逻辑,可能会有很多不同的页面,所以看起来它应该比bean更容易。
我无法看到任何人这样做的例子,所以我猜这有一个原因,也许这样的事情会起作用?...
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
((HttpServletRequest) ec.redirect("http://example.com/");
答案 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,您可以使用问题中提到的FacesContext。