0

我有服务器端倒数计数器。当它 == 0 时,方法应该执行ExternalContext#dispatch(),但它没有这样做。方法ExternalContext#redirect()在这个地方正常工作。

....
        }else{
        try {
            FacesContext.getCurrentInstance().getExternalContext().dispatch("result.xhtml");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
....

我尝试了几种拼写url(result,result.xhtml,\result.xhtml等)的方法,结果相同。

4

1 回答 1

2

这不是让 JSF 导航到不同视图的正确方法。

如果您在操作方法中,则应该将其作为字符串返回。

public String submit() {
    // ...

    return "result.xhtml";
}

或者,如果您不在操作方法中并且由于某些不清楚的原因无法将其更改为完全有价值的操作方法,那么请NavigationHandler#handleNavigation()改用。

FacesContext context = FacesContext.getCurrentInstance();
context.getApplication().getNavigationHandler().handleNavigation(context, null, "result.xhtml");
于 2013-02-27T11:44:04.240 回答