导航到另一个页面JSF

时间:2015-05-29 18:24:16

标签: jsf jsf-2

我写了一个jsf应用程序,这个应用程序将数据插入到mysql数据库中,并在另一个页面中显示一些插入的细节。

我成功地将值插入数据库,但即使在编写导航规则后也无法重定向到其他页面。

我的行动代码

<div align="center"><p:commandButton label="Submit"  action="#{userData.add}"   align="center" ajax="false" /></div>

导航规则

<managed-bean>
        <managed-bean-name>UserData</managed-bean-name>
        <managed-bean-class>userData.UserData</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <navigation-rule>
        <display-name>home.xhtml</display-name>
        <from-view-id>/home.xhtml</from-view-id>
        <navigation-case>
            <to-view-id>/badge.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>

如果我写了face-redirect,那么它显示错误,或者如果我将动作写入另一页,那么它不会将值插入数据库。

1 个答案:

答案 0 :(得分:2)

停止阅读JSF 1.x资源并删除<managed-bean>中所有JSF 1.x样式<navigation-rule>faces-config.xml条目。

适用于action="#{userData.add}"的JSF 2.x方法如下:

@ManagedBean
@ViewScoped
public class UserData {

    public String add() {
        // ...

        return "/badge.xhtml?faces-redirect=true";
    }

}

不需要额外的XML混乱。也没有动作听众。

可以在our JSF wiki page中找到指向JSF 2.x教程/书籍的链接。

另见: