如何在登录后更改URL和模板页面?

时间:2012-02-22 23:26:47

标签: ajax templates jsf facelets icefaces

我正在使用ICEfaces开发一个JSF和Hibernate Web应用程序。我使用两个Facelets模板,一个用于登录页面,另一个用于站点的其余部分。

问题是,当我点击登录按钮时,它会转到主页,但不会更改URL或模板。当我输入正确的URL时,它会转到它并显示正确的模板。

我知道ICEfaces使用Ajax并部分更新页面,但我想知道如何阻止它,我希望它加载整个请求的页面。

1 个答案:

答案 0 :(得分:1)

登录后只需发送重定向即可。您可以通过在导航结果中附加faces-redirect=true请求参数来实现此目的。

public String login() {
    // ...

    return "home?faces-redirect-true";
}

或者,如果您仍然使用<navigation-case>faces-config.xml的古代JSF 1.x,那么您可以通过向<redirect />添加<navigation-case>来实现相同目标。问题。

<naviagation-case>
    <from-outcome>home</from-outcome>
    <to-view-id>/home.jsf</to-view-id>
    <redirect />
</navigation-case>